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