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