在 DB-Engines 網(wǎng)站的排名中,Redis 在 Key-value 存儲(chǔ)的NoSQL領(lǐng)域連續(xù)霸榜多年,是目前最流行的鍵值對(duì)存儲(chǔ)數(shù)據(jù)庫,被廣泛用于緩存、隊(duì)列、實(shí)時(shí)分析等多種高并發(fā)的場景中。在生產(chǎn)環(huán)境中,我們會(huì)遇到對(duì)Redis進(jìn)行版本升級(jí)和架構(gòu)的擴(kuò)縮容的操作,這些操作都會(huì)涉及到Redis數(shù)據(jù)同步操作,所以,一個(gè)穩(wěn)定、高效、安全的數(shù)據(jù)同步服務(wù)不可或缺。
現(xiàn)在,NineData 在支持了「Redis可視化管理工具」的基礎(chǔ)上,又進(jìn)一步拓展了Redis同步的能力,很好地滿足了Redis因版本升級(jí)、擴(kuò)容、縮容等場景下對(duì)數(shù)據(jù)遷移和同步的需求。
一、產(chǎn)品優(yōu)勢(shì)
高效、穩(wěn)定的同步服務(wù)
通過自建Redis實(shí)例間的數(shù)據(jù)同步,在同步性能上,對(duì)比測試了阿里云DTS、Redis-Shake。
全量同步:
同步規(guī)格4c8g,NineData 比 DTS 的性能高70%,比Redis-Shake性能高50% 。
增量同步:
同步規(guī)格1c2g,NineData 比 DTS 的性能高25倍,DTS 對(duì)small規(guī)格進(jìn)行了限制 。
同步規(guī)格4c8g,NineData 比 DTS 的性能高25% 。
通過對(duì)全量同步和增量同步的性能對(duì)比,NineData 性能表現(xiàn)最好,并且NineData還具有全鏈路監(jiān)控、多渠道多策略告警和修復(fù)策略,進(jìn)一步保障了同步鏈路的穩(wěn)定。關(guān)于性能對(duì)比測試的具體數(shù)據(jù)可以看"測試說明"部分。
多源、多模式的支持
NineData 同步支持自建、多云、混合云平臺(tái)等多種數(shù)據(jù)源的Redis服務(wù),也支持Redis的單機(jī)、哨兵和集群任意模式的數(shù)據(jù)同步。
安全可靠
NineData 同步(全量、增量)期間,如果遇到Redis實(shí)例壓力太大影響業(yè)務(wù),可以使用同步限流能力,也支持暫停和斷點(diǎn)續(xù)傳的能力(降低重新同步拉取全量的性能影響),保障數(shù)據(jù)庫的安全和性能。
數(shù)據(jù)一致性
NineData 同步提供了數(shù)據(jù)對(duì)比和不一致數(shù)據(jù)的修復(fù)能力,保證源和目標(biāo)數(shù)據(jù)的一致性。并且也可以對(duì)數(shù)據(jù)對(duì)比進(jìn)行限流,進(jìn)一步保障數(shù)據(jù)庫的穩(wěn)定性。
數(shù)據(jù)匯總
NineData 同步提供了庫映射能力,支持多個(gè)Redis實(shí)例同步到單Redis實(shí)例,實(shí)現(xiàn)了類似 MySQL多源復(fù)制的功能。
二、使用場景
NineData 同步提供穩(wěn)定、安全的數(shù)據(jù)流服務(wù),在支持全量和增量數(shù)據(jù)同步的同時(shí),實(shí)現(xiàn)不停服遷移,降低數(shù)據(jù)同步對(duì)業(yè)務(wù)的影響。可用于以下場景:
升級(jí)
為了使用新版本的特性或修復(fù)安全BUG,需要進(jìn)行Redis的版本升級(jí),可以通過NineData的同步把數(shù)據(jù)同步到新版本Redis實(shí)例上。
擴(kuò)容
單機(jī)/哨兵模式,遷移至集群。如遇到業(yè)務(wù)爆發(fā),單機(jī)Redis的性能滿足不了要求,需要擴(kuò)容成集群,可以通過NineData的同步把單機(jī)實(shí)例上的數(shù)據(jù)遷移至Redis集群上。
縮容
集群模式,遷移至單機(jī)/哨兵。如業(yè)務(wù)壓力不大或?yàn)榻当驹鲂В枰M(jìn)行縮容,可以通過NineData的同步把集群中多個(gè)節(jié)點(diǎn)數(shù)據(jù)匯聚到Redis單機(jī)/哨兵實(shí)例。
其他遷移
Codis、Twemproxy、自研Proxy等集群,遷移至Redis Cluster集群,可以通過NineData把數(shù)據(jù)同步到Redis Cluster實(shí)例。
三、測試說明
通過自建實(shí)例間的數(shù)據(jù)同步,和阿里云的DTS、開源的Redis-Shake進(jìn)行對(duì)比,來對(duì)比同步的性能差異(目前對(duì)于源和目標(biāo)為自建實(shí)例,只有阿里云的DTS支持)。
測試實(shí)例
測試實(shí)例
全量測試
通過腳本生成所有類型的key,并在源實(shí)例上生成500W個(gè)key,used_memory為1.8G內(nèi)存。
全量測試
增量測試
任務(wù)暫停后,執(zhí)行增量腳本(涉及所有類型key的增、刪、改)。為了保證任務(wù)暫停期間,增量數(shù)據(jù)可以存放到repl-backlog-size中,后續(xù)可以通過offset來繼續(xù)增量,需要調(diào)整參數(shù):
config set repl-backlog-size 2147483648 config set client-output-buffer-limit "normal 0 0 0 slave 0 0 0 pubsub 33554432 8388608 60"
增量測試
通過對(duì)全量同步和增量同步的復(fù)制對(duì)比,NineData性能表現(xiàn)最好:
全量同步
規(guī)格4c8g,NineData 比 DTS 的性能高70%,比Redis-Shake性能高50%。
增量同步
規(guī)格1c2g,NineData 比 DTS 的性能高25倍;規(guī)格4c8g,NineData 比 DTS 的性能高25%。
四、總結(jié)
NineData(https://www.ninedata.cloud/)在Redis的同步上,提供了穩(wěn)定和高效的解決方案,并且性能上也領(lǐng)先其他同步工具,特別是在同步的動(dòng)態(tài)限流、數(shù)據(jù)對(duì)比修復(fù)和限流、異常修復(fù)和斷點(diǎn)續(xù)傳等能力上也支持的最完善。
所以,如果需要使用 Redis 的遷移和實(shí)時(shí)同步功能,推薦使用 NineData,不僅滿足穩(wěn)定、高效、安全,而且使用簡單(SaaS),很好地解決 Redis 數(shù)據(jù)同步的問題。
-
數(shù)據(jù)同步
+關(guān)注
關(guān)注
0文章
16瀏覽量
8150 -
nosql
+關(guān)注
關(guān)注
0文章
38瀏覽量
9972 -
Redis
+關(guān)注
關(guān)注
0文章
370瀏覽量
10830
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論