您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“兩個Redis集群如何平滑數(shù)據(jù)遷移”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
由于生產(chǎn)環(huán)境的各種原因,我們需要對現(xiàn)有服務器進行遷移,包括線上正在運行的 redis 集群環(huán)境 如何去做?
涉及到數(shù)據(jù)源變動,原有數(shù)據(jù)如何平滑遷移到新實例,從而可以實現(xiàn)無縫遷移?
執(zhí)行 save\bgsave
觸發(fā)數(shù)據(jù)持久化 RDB
文件
拷貝redis備份文件(dump.rdb)到目標機器
重啟目標實例重新load
RDB 文件
關于 save/bgsave 的區(qū)別
命令 | save | bgsave |
---|---|---|
IO阻塞 | 同步 | 異步 |
復雜度 | O(n) | O(n) |
缺點 | 阻塞客戶端 | 需要fork,消耗內(nèi)存 |
redis-dump
導入導出 json
備份redis-dump 基于JSON 備份還原Redis的數(shù)據(jù)https://github.com/delano/redis-dump
# 導出命令 redis-dump –u 127.0.0.1:6379 > lengleng.json # 導出指定數(shù)據(jù)庫數(shù)據(jù) redis-dump -u 127.0.0.1:6379 -d 15 > lengleng.json # 如果redis設有密碼 redis-dump –u :password@127.0.0.1:6379 > lengleng.json # 導入命令 < lengleng.json redis-load # 指定redis密碼 < lengleng.json redis-load -u :password@127.0.0.1:6379
redis-shake
實現(xiàn) redis-cluster
遷移redis-shake是阿里云Redis&MongoDB團隊開源的用于redis數(shù)據(jù)同步的工具https://github.com/alibaba/RedisShake。
基于 Docker
創(chuàng)建兩個集群
docker run --name redis-cluster1 -e CLUSTER_ANNOUNCE_IP=192.168.0.31 -p 8000-8005:7000-7005 -p 18000-18005:17000-17005 pig4cloud/redis-cluster:4.0
docker run --name redis-cluster2 -e CLUSTER_ANNOUNCE_IP=192.168.0.31 -p 8000-8005:7000-7005 -p 18000-18005:17000-17005 pig4cloud/redis-cluster:4.0
配置 redis-shake.conf
source.type: cluster source.address: master@192.168.0.31:7000 #配置一個節(jié)點自動發(fā)現(xiàn) target.type: cluster target.address: master@192.168.0.31:8000 #配置一個節(jié)點自動發(fā)現(xiàn)
執(zhí)行全量、增量同步
restful監(jiān)控指標
# 用戶可以通過restful監(jiān)控指標查看內(nèi)部運行狀況,默認的restful端口是9320: http://127.0.0.1:9320/metric
“兩個Redis集群如何平滑數(shù)據(jù)遷移”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。