文章來(lái)源:虹科云科技
越來(lái)越多的應(yīng)用程序依賴于龐大的數(shù)據(jù)集合,而這些應(yīng)用程序必須快速響應(yīng)。借助自動(dòng)分層,Redis Enterprise 7.2 幫助開(kāi)發(fā)人員輕松創(chuàng)建超快的應(yīng)用程序。何樂(lè)而不為?
Redis將數(shù)據(jù)存儲(chǔ)在內(nèi)存中,因此應(yīng)用程序能以最快的速度檢索和處理數(shù)據(jù)。然而,隨著應(yīng)用程序需要處理的數(shù)據(jù)越多,存儲(chǔ)數(shù)據(jù)集所需的內(nèi)存越大,所耗費(fèi)的成本則更高,Redis Enterprise自動(dòng)分層技術(shù)能很好地化解這個(gè)兩難的局面。
一、問(wèn)題:內(nèi)存有限且昂貴
當(dāng)應(yīng)用程序訪問(wèn)的數(shù)據(jù)量很大,例如達(dá)到TB級(jí)時(shí),開(kāi)發(fā)人員就面臨著內(nèi)存有限的問(wèn)題,他們一般使用基于磁盤(pán)的解決方案來(lái)在幕后支持 Redis。這樣一來(lái),開(kāi)發(fā)人員就不得不在應(yīng)用程序中構(gòu)建整個(gè)數(shù)據(jù)管理系統(tǒng),這意味著他們要把時(shí)間花在不相干的任務(wù)上。
利用Redis Enterprise 的自動(dòng)分層功能 ,開(kāi)發(fā)人員可以使用固態(tài)硬盤(pán)(SSD)作為可用內(nèi)存的一部分,將大容量數(shù)據(jù)庫(kù)擴(kuò)展到SSD中。Redis Enterprise 可以隨時(shí)識(shí)別哪些數(shù)據(jù)應(yīng)留在內(nèi)存中,哪些數(shù)據(jù)應(yīng)留在固態(tài)硬盤(pán)上,從而將吞吐量提高一倍,并將延遲減半。
因此,開(kāi)發(fā)人員無(wú)需編寫(xiě)額外的代碼或?qū)W習(xí)其他新技術(shù)。通過(guò)將動(dòng)態(tài)RAM 與高速外部存儲(chǔ)相結(jié)合,Redis Enterprise 可以輕松高效地使用系統(tǒng)資源,同時(shí)還能快速訪問(wèn)熱數(shù)據(jù)。
二、自動(dòng)分層的工作原理
自動(dòng)分層可自動(dòng)管理數(shù)據(jù)。它會(huì)將熱數(shù)據(jù)轉(zhuǎn)移到DRAM,并智能地將未使用的數(shù)據(jù)轉(zhuǎn)移到 SSD。這為依賴大型數(shù)據(jù)集的應(yīng)用帶來(lái)了新的可能性。
通過(guò)將訪問(wèn)頻率較低的冷數(shù)據(jù)轉(zhuǎn)移到固態(tài)硬盤(pán),開(kāi)發(fā)人員可以優(yōu)化內(nèi)存使用,降低與大容量?jī)?nèi)存需求相關(guān)的成本。
實(shí)際上,這可以使數(shù)據(jù)量大的應(yīng)用程序運(yùn)行得更快,而無(wú)需開(kāi)發(fā)人員額外付出。與僅使用DRAM 的部署相比,它還能節(jié)省高達(dá) 70% 的基礎(chǔ)硬件設(shè)施成本。而且,由于自動(dòng)分層可以高效地自動(dòng)管理數(shù)據(jù)訪問(wèn)模式,因此您無(wú)需花費(fèi)時(shí)間(計(jì)算或人工篩選)來(lái)識(shí)別熱數(shù)據(jù)和冷數(shù)據(jù)。
為了增強(qiáng)這一功能,Redis 與創(chuàng)新的鍵值存儲(chǔ)引擎 Speedb 建立了戰(zhàn)略合作伙伴關(guān)系。我們將其技術(shù)整合為默認(rèn)的自動(dòng)分層引擎。
集成Speedb 后,Redis Enterprise 的性能顯著提升,在訪問(wèn)相同資源的情況下,吞吐量翻倍,延遲減半。這大大拓寬了可利用自動(dòng)分層優(yōu)勢(shì)的用例范圍。在這一改進(jìn)之后,Redis Enterprise 使用自動(dòng)分層的數(shù)據(jù)庫(kù)規(guī)模由每個(gè)內(nèi)核 5k ops/秒增至10k ops/秒。
三、數(shù)據(jù)案例
我們來(lái)看一個(gè)案例。
下圖展示了自動(dòng)分層在實(shí)際工作負(fù)載場(chǎng)景中的性能演變示例。藍(lán)色條代表使用以前的存儲(chǔ)引擎(RocksDB)的 Redis Enterprise 6.4,紅色條代表使用 Speedb 的 Redis Enterprise 7.2。在基礎(chǔ)設(shè)施方面,我們使用 I4i.8xlarge AWS 實(shí)例在 10 個(gè)分片上托管 1TB 數(shù)據(jù)庫(kù),為實(shí)現(xiàn)高可用性,采用總共 20 個(gè)分片,為 1,024 個(gè)客戶端提供服務(wù)。
為了模擬最標(biāo)準(zhǔn)的Redis 用例,我們?cè)?20% DRAM 和 80% SSD 的配置上定義了兩種不同的有效載荷(1KiB 和 10KiB),并提供了三種可能的使用模式:平衡讀/寫(xiě)(1:1)、重讀(1:4)和重寫(xiě)(4:1)。在這兩種情況下,我們測(cè)量了以每秒操作數(shù)為單位的吞吐量和相應(yīng)的延遲。以下圖表顯示了結(jié)果。
RAM/SSD數(shù)據(jù)占比2:8,單次操作1KB值
與RS 6.4 (RocksDB) 相比,RS 7.2 (Speedb) 改進(jìn)了:
· 85% 命中率時(shí):每秒操作次數(shù)增加 1.4 倍至 1.6 倍,同時(shí)延遲降低高達(dá) 2.4 倍
· 50% 命中率時(shí):每秒操作次數(shù)增加 1.9 倍至 2.3 倍,同時(shí)延遲降低高達(dá) 3.8 倍
RAM/SSD數(shù)據(jù)占比2:8,單次操作10KB值
與RS 6.4 (RocksDB) 相比,RS 7.2 (Speedb) 改進(jìn)了:
· 85% 命中率時(shí):每秒操作次數(shù)增加 2.3 倍至 3.0 倍,同時(shí)延遲降低高達(dá) 3.0 倍
· 50% 命中率時(shí):每秒操作次數(shù)增加 2.1 倍至 3.5 倍,同時(shí)延遲降低高達(dá) 3.5 倍
在所有情況下,帶有Speedb 的 Redis Enterprise 7.2 都具有更好的吞吐量,這意味著維持這種性能水平所需的應(yīng)用程序速度更快,基礎(chǔ)設(shè)施更少。
四、應(yīng)用場(chǎng)景
自動(dòng)分層尤其適用于將數(shù)據(jù)分為熱數(shù)據(jù)和冷數(shù)據(jù)的情況。
1.移動(dòng)銀行
讓我們來(lái)看看移動(dòng)銀行應(yīng)用的例子。
如今,每個(gè)人的移動(dòng)設(shè)備上都有銀行應(yīng)用程序。 用戶登錄應(yīng)用程序,獲取余額,查看最后一筆交易,并獲取其他相對(duì)較小和集中的信息。 每個(gè)人都希望這一過(guò)程流暢、簡(jiǎn)單、即時(shí)。這些數(shù)據(jù)就是我們的熱數(shù)據(jù),存放在Redis Enterprise 數(shù)據(jù)庫(kù)的 DRAM 中。
用戶希望獲得更多信息的情況并不常見(jiàn),例如舊交易記錄--也許是兩年前的稅務(wù)數(shù)據(jù)。用戶需要訪問(wèn)這些數(shù)據(jù),但數(shù)據(jù)訪問(wèn)速度并不那么重要。這種數(shù)據(jù)集是我們的冷數(shù)據(jù),可以保存在高速外部存儲(chǔ)如固態(tài)硬盤(pán)中。
2.游戲行業(yè)
速度在游戲行業(yè)也很重要。例如, 游戲應(yīng)用對(duì)延遲有嚴(yán)格要求 。另外,從本質(zhì)上講,游戲是一種潮流。隨著時(shí)間的推移,游戲公司會(huì)積累越來(lái)越多的用戶數(shù)據(jù),并將其存儲(chǔ)在用戶資料數(shù)據(jù)庫(kù)中,但并非所有用戶都是活躍用戶。通過(guò)自動(dòng)分層,活躍用戶的資料數(shù)據(jù)可以存儲(chǔ)在DRAM 中,而其他用戶的數(shù)據(jù)則存儲(chǔ)在 SSD 中。
審核編輯 黃宇
-
內(nèi)存
+關(guān)注
關(guān)注
8文章
3055瀏覽量
74328 -
固態(tài)硬盤(pán)
+關(guān)注
關(guān)注
12文章
1474瀏覽量
57548 -
大數(shù)據(jù)
+關(guān)注
關(guān)注
64文章
8908瀏覽量
137790 -
Redis
+關(guān)注
關(guān)注
0文章
378瀏覽量
10942
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論