AWS在推出Amazon ElastiCache for Redis全托管內(nèi)存緩存服務(wù)之后,現(xiàn)在又推出另一款,同樣是兼容于Redis的內(nèi)存數(shù)據(jù)庫服務(wù)Amazon MemoryDB for Redis,供開發(fā)者構(gòu)建需要微秒讀取,以及個(gè)位數(shù)毫秒寫入性能,且具有資料持久性和高可用性的應(yīng)用程序。
由于交互式應(yīng)用程序需要快速地處理請(qǐng)求和回應(yīng),AWS提到,當(dāng)開發(fā)者采用微服務(wù),且架構(gòu)由許多相互獨(dú)立的小服務(wù)組成時(shí),低延遲的請(qǐng)求處理和回應(yīng)速度更是重要。數(shù)據(jù)庫在應(yīng)用程序的性能占重要的位置,而要將讀取延遲降低到微秒等級(jí),開發(fā)者通常會(huì)在持久數(shù)據(jù)庫前,設(shè)置像是Redis等內(nèi)存緩存。
之前AWS所推出的Amazon ElastiCache for Redis,便是讓用戶在AWS云計(jì)算上,使用該服務(wù)作為Amazon Aurora或Amazon DynamoDB等持久數(shù)據(jù)庫的低延遲緩存,不過這樣的配置,用戶必需要自己定義維持緩存和數(shù)據(jù)庫同步的邏輯,并且也會(huì)產(chǎn)生執(zhí)行緩存和數(shù)據(jù)庫的成本。
而AWS現(xiàn)在推出的Amazon MemoryDB for Redis就是要來簡化這個(gè)架構(gòu),用戶可以將MemoryDB直接用作單個(gè)主要數(shù)據(jù)庫,而不僅是持久數(shù)據(jù)庫之前的低延遲緩存,也就是說,使用MemoryDB,用戶的所有資料都會(huì)存儲(chǔ)在內(nèi)存中,進(jìn)而實(shí)現(xiàn)低延遲和高吞吐量的資料訪問能力。MemoryDB使用分布式交易性日志,能跨可用區(qū)域存儲(chǔ),支持資料恢復(fù)和節(jié)點(diǎn)重啟,具有高持久性。
AWS解釋MemoryDB和ElastiCache適合的場景,MemoryDB能夠成為應(yīng)用程序的主數(shù)據(jù)庫,提供資料持久性,而且微秒讀取和毫秒寫入的速度,使用MemoryDB就不需要在數(shù)據(jù)庫之前添加緩存,就可實(shí)現(xiàn)交互式應(yīng)用程序和微服務(wù)架構(gòu)所需要的低延遲。而ElastiCache對(duì)讀取和寫入都提供微秒延遲,適用于緩存工作負(fù)載,可加快現(xiàn)有數(shù)據(jù)庫的訪問速度,在用戶可以接受資料丟失的情況,也可以將ElastiCache用作主數(shù)據(jù)庫存儲(chǔ)。
Amazon MemoryDB for Redis目前已在美東、歐洲和南美洲上線,亞洲則是孟買地區(qū),用戶可以使用AWS控制臺(tái)、命令行接口和AWS開發(fā)工具包,快速創(chuàng)建MemoryDB集群,能夠從ElastiCache搬遷到MemoryDB,或是使用存儲(chǔ)在Amazon S3上的Redis備份文件創(chuàng)建集群。值得注意的是,目前MemoryDB僅支持R6g Graviton2執(zhí)行實(shí)例。