AI時代下的Redis
譯文【51CTO.com快譯】
關(guān)系數(shù)據(jù)庫仍然是世界上使用最廣泛的數(shù)據(jù)庫類別,但多年來其人氣趨勢線一直平平。同時,其他云原生數(shù)據(jù)庫系統(tǒng)類型卻日益崛起。這在各種版本的NoSQL數(shù)據(jù)庫系統(tǒng)中尤為明顯,比如文檔存儲數(shù)據(jù)庫(MongoDB)、鍵值數(shù)據(jù)庫(Redis)和寬列數(shù)據(jù)庫(Cassandra)。
來自DB-Engines的下圖清楚地表明了這個趨勢:
NoSQL數(shù)據(jù)庫系統(tǒng)如此迅猛增長的部分原因在于它們與人工智能(AI)和機器學習(ML)等所謂的“大數(shù)據(jù)”兼容。由于NoSQL數(shù)據(jù)庫的結(jié)構(gòu)性不如關(guān)系數(shù)據(jù)庫,所以它們更靈活,可以更好地擴展——對于需要由AI和ML系統(tǒng)常常實時處理的大量數(shù)據(jù)而言這是兩個重要的屬性。
為了更好地了解為什么NoSQL現(xiàn)在如此流行、這些系統(tǒng)如何處理AI和ML,我與最流行的NoSQL數(shù)據(jù)庫公司之一Redis Labs的創(chuàng)始人進行了交談。Yiftach Shoolman自2011年以來一直擔任該公司的CTO,最近帶領手下發(fā)布了Redis Labs的新模塊RedisAI。
Shoolman告訴我:“我認為,今天人們以更開放的心態(tài)看待新的數(shù)據(jù)模型。”他說,企業(yè)關(guān)注關(guān)系數(shù)據(jù)庫的替代技術(shù)主要出于兩個動機。第一個是可擴展性,第二個是關(guān)系數(shù)據(jù)庫不直接支持應用程序所需的數(shù)據(jù)模型時。后者的一個例子是電子商務網(wǎng)站上的實時推薦,這需要能夠?qū)⒋罅坎煌瑪?shù)據(jù)快速連接在一起的數(shù)據(jù)庫(這方面的一個選擇是Graph DBMS產(chǎn)品,比如Neo4j)。
Redis是一種鍵值數(shù)據(jù)庫系統(tǒng),這意味著它存儲鍵值對,但與Neo4j一樣,它也針對實時Web進行了優(yōu)化。實際上,它是為實時Web發(fā)明的。Salvatore Sanfilippo早在2009年開始開發(fā)Redis時,那是由于他當時在開發(fā)一個實時分析引擎,但是借助關(guān)系數(shù)據(jù)庫很難擴展。于是,他做了任何聰明的開發(fā)人員都會做的事情:自行構(gòu)建解決方案。這就變成了開源Redis,現(xiàn)在它是全球人氣指數(shù)排名第八的數(shù)據(jù)庫(鍵值數(shù)據(jù)庫中人氣最高)。
Redis有內(nèi)存數(shù)據(jù)結(jié)構(gòu),這意味著它使用隨機存取存儲器(RAM)存儲數(shù)據(jù)。這使其比傳統(tǒng)數(shù)據(jù)庫快得多,還非常適合用作緩存系統(tǒng)。這就是Redis有別于關(guān)系數(shù)據(jù)庫及NoSQL競爭對手(比如MongoDB和Cassandra)的地方。據(jù)Shoolman聲稱,由于內(nèi)存結(jié)構(gòu),Redis“對實時應用進行了非常優(yōu)化的設計,延遲時間不到1毫秒。”
內(nèi)存結(jié)構(gòu)的缺點之一是,它根本沒有與其他數(shù)據(jù)庫系統(tǒng)同樣的容量,對于AI而言更是如此。鑒于AI可處理你饋送給它的大量數(shù)據(jù),這可能是個大問題。查詢數(shù)據(jù)也不是一樣容易,查詢數(shù)據(jù)是Oracle和MySQL等關(guān)系數(shù)據(jù)庫以及CockroachDB等新興的云原生SQL數(shù)據(jù)庫的優(yōu)勢。
雖然Shoolman承認Redis“在許多情況下仍被用作緩存系統(tǒng)”,但他說Redis Labs公司的目標是幫助企業(yè)“將其更多地用作緩存”。該公司主要通過Redis Enterprise來做到這一點,這是基于開源Redis數(shù)據(jù)庫而建的商業(yè)平臺。
Redis Labs通過模塊將Redis的核心功能擴展為一個完整的“數(shù)據(jù)庫平臺”,RedisAI是其中一種模塊。RedisAI是Redis Labs與AI軟件專家Tenserwerk共同開發(fā)的,讓您能夠跨Redis數(shù)據(jù)庫運行AI推理引擎。
Shoolman透露的一個關(guān)鍵點是,RedisAI模塊不會訓練您的數(shù)據(jù)——為此您需要TensorFlow或PyTorch之類的工具(這是兩個用于機器學習的開源平臺)。RedisAI出現(xiàn)在應用程序?qū)樱菚r候?qū)⑦壿嬤\用于數(shù)據(jù)(推理)、然后將數(shù)據(jù)提供給用戶了。
Shoolman解釋說:“我們認為您需要在云端某個地方訓練[AI]模型。一旦您要進行服務或推理,Redis是適合執(zhí)行該操作的數(shù)據(jù)庫。”
Shoolman以信用卡交易的交易評分為例。最終,系統(tǒng)必須決定交易是成功還是失敗。 Shoolman說:“為了做到這一點,您需要添加用戶資料、商家資料、教育資料和有效的交易數(shù)據(jù)本身,然后對所有內(nèi)容進行向量化處理,并發(fā)送給AI。”
RedisAI是AI軟件和數(shù)據(jù)之間的一種渠道。而速度最關(guān)鍵,至少對Redis而言是如此。 當然,準確性部分也很關(guān)鍵,但這大概是AI訓練平臺的責任。
據(jù)Shoolman聲稱,企業(yè)前進道路上的主要挑戰(zhàn)之一是它們是想堅持使用關(guān)系數(shù)據(jù)庫的傳統(tǒng)孤立方法,還是想采用依托一個后端支持多個數(shù)據(jù)模型的多模型方法。Redis Enterprise是后者的一個例子,它的每個模塊都支持不同的數(shù)據(jù)模型。
Shoolman說,這取決于您想要實現(xiàn)的目標。與多模型方法相比,有些事情是關(guān)系數(shù)據(jù)庫根本做不到的。
Shoolman說:“如果你考慮需要合并多個數(shù)據(jù)模型的事務,并仍從事毫秒級延遲的操作,根本無法用孤立方法來做到。”
原文標題:Redis in the Age of AI,作者:Richard MacManus
【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】