2022年2月11日,亞馬遜云科技宣布通過與光環(huán)新網(wǎng)和西云數(shù)據(jù)的緊密合作,在中國區(qū)域(北京與寧夏)推出完全托管的、兼容Redis的內(nèi)存數(shù)據(jù)庫Amazon MemoryDB for Redis。
隨著互聯(lián)網(wǎng)的發(fā)展,數(shù)據(jù)庫性能對(duì)于應(yīng)用程序的成功至關(guān)重要。為了提高性能,要將讀取數(shù)據(jù)庫的時(shí)間延遲減少到微秒級(jí)別,我們通常采用的做法是在持久數(shù)據(jù)庫之前放置一個(gè)緩存數(shù)據(jù)庫,從而提高讀取速度,帶來更好的用戶體驗(yàn)。
對(duì)于緩存,許多開發(fā)人員使用Redis,這是一種開源的內(nèi)存數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)。事實(shí)上,根據(jù)Stack Overflow的2021年開發(fā)者調(diào)查,Redis五年來一直是最受歡迎的數(shù)據(jù)庫。
要在云上實(shí)施此設(shè)置,您可以使用Amazon ElastiCache實(shí)現(xiàn)低延遲緩存,并將Amazon Aurora/RDS或Amazon DynamoDB等持久數(shù)據(jù)庫服務(wù)放在緩存后端,以最大程度地減少數(shù)據(jù)丟失。但是,此設(shè)置要求您在應(yīng)用程序中引入自定義代碼以保持緩存與數(shù)據(jù)庫同步。這無疑會(huì)造成一定的學(xué)習(xí)成本和管理成本,與此同時(shí)您還需要兼顧考慮運(yùn)行緩存數(shù)據(jù)庫和后端持久化數(shù)據(jù)庫的成本。
在2021年8月份我們發(fā)布了Amazon MemoryDB for Redis,這是一套新的高持久性、兼容Redis的內(nèi)存數(shù)據(jù)庫。Amazon MemoryDB for Redis能夠幫助您經(jīng)濟(jì)高效地構(gòu)建起讀取性能達(dá)微秒級(jí)別、寫入性能維持在個(gè)位數(shù)毫秒,而且持久性與可用性極高的應(yīng)用程序。
Amazon MemoryDB for Redis與開源Redis項(xiàng)目保持著良好的兼容性,您可以在這里使用自己熟悉的Redis數(shù)據(jù)類型、參數(shù)及命令。換句話說,您可以在之前已經(jīng)積累的基于開源Redis的代碼、應(yīng)用程序、驅(qū)動(dòng)程序及工具直接與Amazon MemoryDB for Redis配合使用。填補(bǔ)了Amazon ElastiCache對(duì)于緩存數(shù)據(jù)持久化層的空白。我們將其視作一種延續(xù)與擴(kuò)展。
Amazon ElastiCache和Amazon MemoryDB之間的區(qū)別在于,前者旨在作為一項(xiàng)超高速緩存服務(wù),一般來說需要一個(gè)搭配的主數(shù)據(jù)庫配合使用。
而Amazon MemoryDB本身是一項(xiàng)完整的數(shù)據(jù)庫服務(wù),旨在獨(dú)立運(yùn)行。考慮到Amazon MemoryDB本質(zhì)上是ElastiCache for Redis的高級(jí)層;從功能上講,它是一個(gè)高性能數(shù)據(jù)庫而不是緩存;從技術(shù)上講,它是與它兼容的Redis引擎而修改實(shí)現(xiàn)。總而言之,Amazon MemoryDB for Redis是一種實(shí)時(shí)數(shù)據(jù)庫實(shí)現(xiàn),基于開源Redis平臺(tái),且具備數(shù)據(jù)持久性。
推出后,Amazon MemoryDB將支持開源Redis的所有核心數(shù)據(jù)API,包括字符串、列表、集合、排序集合、散列、流、地理空間、位圖和超級(jí)日志。每個(gè)集群可以支持最大~100TB的內(nèi)存存儲(chǔ)容量,每個(gè)分片有一個(gè)副本。對(duì)于Amazon MemoryDB,用戶將能夠使用他們已經(jīng)使用的相同Redis數(shù)據(jù)結(jié)構(gòu)和API構(gòu)建應(yīng)用程序,但具有完全托管數(shù)據(jù)庫的額外好處。
Amazon MemoryDB支持的用例有很多典型的用例:
·構(gòu)建web和移動(dòng)應(yīng)用程序:使用多功能的Redis數(shù)據(jù)結(jié)構(gòu)構(gòu)建內(nèi)容數(shù)據(jù)存儲(chǔ)、聊天和消息隊(duì)列以及地理空間索引,以滿足需要低延遲和高吞吐量的數(shù)據(jù)密集型web和移動(dòng)應(yīng)用程序的需求。
·在線游戲戰(zhàn)斗服:為需要大規(guī)模、低延遲和高并發(fā)性才能進(jìn)行實(shí)時(shí)更新的游戲應(yīng)用程序構(gòu)建玩家數(shù)據(jù)存儲(chǔ)、會(huì)話歷史記錄和排行榜。
·實(shí)時(shí)流媒體和娛樂應(yīng)用:運(yùn)行高并發(fā)流式數(shù)據(jù)源以接收用戶活動(dòng),并支持媒體和娛樂應(yīng)用程序每天數(shù)百萬次的請(qǐng)求。
下面我們來看看Netflix以及Twilio的客戶案例:
Netflix是世界領(lǐng)先的娛樂服務(wù)提供商之一,在190多個(gè)國家擁有2億多會(huì)員,提供多種類型和不同語言的影視劇、紀(jì)錄片。Netflix MCE媒體工作流基礎(chǔ)架構(gòu)經(jīng)理Charles Zhao表示:“我們的媒體平臺(tái)采用的微服務(wù)架構(gòu),我們一直在尋找合適的數(shù)據(jù)庫來支持該平臺(tái)。我們非常高興看到亞馬遜云科技推出了Amazon MemoryDB for Redis,它滿足了我們對(duì)持久內(nèi)存數(shù)據(jù)庫的需求,為我們的短期和長期架構(gòu)計(jì)劃提供支持。”
Twilio是一家領(lǐng)先的云通信平臺(tái),使開發(fā)者能夠通過簡(jiǎn)單易用的API在其軟件應(yīng)用程序中創(chuàng)建、擴(kuò)展和運(yùn)行實(shí)時(shí)客戶互動(dòng)。Twilio工程總監(jiān)Andrei Birjukov表示:“我們的平臺(tái)每年在語音、電子郵件、短信、彩信、FB Messenger、WhatsApp等渠道發(fā)送和接收超過1050億條信息,我們需要一個(gè)能夠處理如此大規(guī)模信息量的數(shù)據(jù)庫,同時(shí)還要確保低延遲。Amazon MemoryDB for Redis具有極高的可擴(kuò)展性,每個(gè)集群可輕松擴(kuò)展到一百多TB。作為一個(gè)內(nèi)存數(shù)據(jù)庫,Amazon MemoryDB for Redis提供了極高的性能,對(duì)我們?nèi)蚱脚_(tái)的運(yùn)營至關(guān)重要。”