交互式應(yīng)用程序?qū)τ谡埱筇幚砼c響應(yīng)速度提出了更高的要求,而這種要求也體現(xiàn)在架構(gòu)內(nèi)的所有組件上。如果您恰好采用的是包含眾多小型獨立服務(wù)并相互通信頻繁的微服務(wù)架構(gòu),那么速度就是決定應(yīng)用體驗的關(guān)鍵因素。
長久以來,各方都對數(shù)據(jù)庫性能給予高度關(guān)注。而當(dāng)讀取延遲需要控制在微秒級別時,可以在持久化數(shù)據(jù)庫之前放置一套內(nèi)存緩存。而目前最具人氣的緩存解決方案當(dāng)數(shù)——Redis,一套開源的內(nèi)存數(shù)據(jù)存儲。事實上,根據(jù)Stack Overflow發(fā)布的《2021年開發(fā)者調(diào)查》報告,Redis在過去五年中一直蟬聯(lián)最受歡迎數(shù)據(jù)庫寶座。
而在亞馬遜云科技上建立這樣的設(shè)置,您可以將Amazon ElastiCache for Redis(一項完全托管的內(nèi)存緩存服務(wù))作為低延遲緩存放置在Amazon Aurora或Amazon DynamoDB等持久數(shù)據(jù)庫服務(wù)之前,從而最大程度減少數(shù)據(jù)丟失幾率。但是,這套設(shè)置還要求我們在應(yīng)用程序當(dāng)中引入自定義代碼,確保緩存與數(shù)據(jù)庫內(nèi)容始終同步,而這必然會帶來額外的緩存與數(shù)據(jù)庫運營成本。
Amazon MemoryDB for Redis現(xiàn)已正式推出
今天,我們高興地宣布Amazon MemoryDB for Redis已經(jīng)正式推出。這是一套新的高持久性、兼容Redis的內(nèi)存數(shù)據(jù)庫。Amazon MemoryDB for Redis能夠幫助您經(jīng)濟高效地構(gòu)建起讀取性能達微秒級別、寫入性能維持在個位數(shù)毫秒,而且持久性與可用性極高的應(yīng)用程序。
相較于以往將低延遲緩存部署在持久數(shù)據(jù)庫之前的作法,現(xiàn)在可以直接將Amazon MemoryDB for Redis作為獨立主數(shù)據(jù)庫使用。您的所有數(shù)據(jù)都將存儲在內(nèi)存當(dāng)中,實現(xiàn)低延遲與高吞吐量的數(shù)據(jù)訪問能力。
Amazon MemoryDB for Redis與開源Redis項目保持著良好的兼容性,您可以在這里使用自己熟悉的Redis數(shù)據(jù)類型、參數(shù)及命令。換句話說,您可以在之前已經(jīng)積累的基于開源Redis的代碼、應(yīng)用程序、驅(qū)動程序及工具直接與Amazon MemoryDB for Redis配合使用。作為開發(fā)人員,您可以立即訪問各類數(shù)據(jù)結(jié)構(gòu),例如字符串、散列、列表、集合、帶范圍查詢的排序集合、位圖、超級日志、地理空間索引及流等等。您還可以在這里獲得多種高級功能,例如內(nèi)置復(fù)制、最近最少使用(LRU)清理、事務(wù)與自動分區(qū)等等。Amazon MemoryDB for Redis全面兼容Redis 6.2版本,并支持以開源方式發(fā)布的后續(xù)更新版本。
相信不少朋友看到這里會心生疑問——那Amazon MemoryDB for Redis與Amazon ElastiCache相比,究竟孰優(yōu)孰劣?畢竟這兩種服務(wù)都能訪問Redis數(shù)據(jù)結(jié)構(gòu)與API。我們可以分以下幾點來看:
1,Amazon MemoryDB for Redis能夠安全充當(dāng)您應(yīng)用程序的主數(shù)據(jù)庫,提供良好的數(shù)據(jù)持久性、微秒級讀取與個位數(shù)毫秒級寫入延遲。使用Amazon MemoryDB for Redis,您無需在數(shù)據(jù)庫前添加緩存,即可為交互式應(yīng)用程序及微服務(wù)架構(gòu)提供必要的低延遲性能。
2,另一方面,Amazon ElastiCache為讀取及寫入操作均提供微秒級延遲。它是緩存類應(yīng)用場景的理想解決方案,專門加快從現(xiàn)有數(shù)據(jù)庫中訪問數(shù)據(jù)的速度。Amazon ElastiCache也可以作為主數(shù)據(jù)存儲使用,但前提是您的用例能夠接受數(shù)據(jù)丟失(例如,使用另一數(shù)據(jù)源快速重建數(shù)據(jù)庫)。
使用Amazon MemoryDB for Redis作為主數(shù)據(jù)庫
客戶數(shù)據(jù)管理無疑是各類業(yè)務(wù)流程中的重要組成部分。只需要幾行代碼,我們就能創(chuàng)建出微服務(wù)框架。更重要的是,Amazon MemoryDB for Redis為我們提供了生產(chǎn)環(huán)境下必需的持久性與高可用性,而且無需在后端添加額外數(shù)據(jù)庫。
結(jié)合工作負載的實際需要,我們也可以添加或刪除節(jié)點實現(xiàn)集群的橫向擴展,或者遷移至配置更高或更配的節(jié)點類型對集群進行縱向擴展。Amazon MemoryDB for Redis還支持通過分片進行寫入擴展,以及通過添加副本進行讀取擴展。我們的集群能夠在規(guī)模伸縮期間繼續(xù)保持在線,并正常支持讀取/寫入操作。
上線時間與費率標準Amazon MemoryDB for Redis現(xiàn)已在美國東部(北弗吉尼亞州)、歐洲(愛爾蘭)、亞太地區(qū)(孟買)以及南美洲(圣保羅)區(qū)域上線,后續(xù)還將登陸更多Amazon區(qū)域。
您可以使用Amazon管理控制臺、Amazon命令行界面(CLI)或者Amazon開發(fā)工具包在幾分鐘之內(nèi)輕松創(chuàng)建一個Amazon MemoryDB for Redis集群。Amazon CloudFormation的相關(guān)支持也即將推出。在節(jié)點方面,Amazon MemoryDB for Redis目前支持R6g Graviton2實例。
要將Amazon ElastiCache for Redis遷移至Amazon MemoryDB for Redis,您可以備份ElastiCache集群并將其恢復(fù)至MemoryDB集群。另外,您也可以使用存儲在Amazon Simple Storage Service(Amazon S3)上的Redis數(shù)據(jù)庫備份(RDB)文件創(chuàng)建新的集群。
使用Amazon MemoryDB for Redis,您只需要根據(jù)各個節(jié)點的按需實例運行時長、寫入集群的具體數(shù)據(jù)量以及快照存儲容量付費。關(guān)于更多詳細信息,請參閱MemoryDB費率說明頁面。