這里給大家分享一個Redis的數(shù)據(jù)遷移和清洗工具那就是阿里巴巴開源工具redis-shake,redis-shake工具使用起來比較簡單,也經(jīng)歷過大廠的認(rèn)證,正確性和穩(wěn)定性都有非常保障。
阿里云賬戶多充多送:http://hkonecloud.755800.com/
redis-shake 常見于生產(chǎn)環(huán)境中將 Redis 單機實例遷移到集群實例或者需要無縫將一個小規(guī)格 Redis 實例遷移到另一個大規(guī)格 Redis 實例。
redis-shake 支持遷移單實例、集群等,也支持將數(shù)據(jù)備份或者遷移到阿里云。經(jīng)過迭代,目前 redis-shake 有兩個版本。
從 GitHub 下載二進制或者自己從代碼編譯都行,redis-shake 使用 Go 語言開發(fā),整體代碼也比較簡單易懂,感興趣的小伙伴也可以自行查閱。除此之外,如果要使用數(shù)據(jù)過濾的功能,可以使用 Lua 語言進行自定義,保證了工具的靈活性。
更多項目詳情請查看如下鏈接。
開源項目地址:https://github.com/alibaba/RedisShake
開源項目作者:https://github.com/alibaba
實戰(zhàn)
正式操作前先在測試環(huán)境實踐一把看看效果如何,先說明下環(huán)境
源庫:192.168.28.142
目標(biāo)庫:192.168.147.128
步驟一:
使用wget命令下載至本地
wget https://github.com/alibaba/RedisShake/releases/download/release-v2.0.2-20200506/redis-shake-v2.0.2.tar.gz
步驟二:
解壓,進入相應(yīng)目錄看看有哪些東東
步驟三:
更改配置文件redis-shake.conf
日志輸出
源端連接配置
目標(biāo)端設(shè)置
步驟四:
./start.sh redis-shake.conf sync
查看日志文件
查看下數(shù)據(jù)同步情況,如下圖,發(fā)現(xiàn)所有的庫都同步過來了,非常nice。
但如果只想同步某個庫又該怎么操作呢?
馬上查閱了配置文件及官方文檔,稍作調(diào)整就可以,具體如下
配置項 說明
target.db:設(shè)置待遷移的數(shù)據(jù)在目的Redis中的邏輯數(shù)據(jù)庫名。例如,要將所有數(shù)據(jù)遷移到目的Redis中的DB10,則需將此參數(shù)的值設(shè)置為10。當(dāng)該值設(shè)置為-1時,邏輯數(shù)據(jù)庫名在源Redis和目的Redis中的名稱相同,即源Redis中的DB0將被遷移至目的Redis中的DB0,DB1將被遷移至DB1,以此類推。
filter.db.whitelist 指定的db被通過,比如0;5;10將會使db0, db5, db10通過, 其他的被過濾
那比如我這邊只想把源端的10庫同步至目標(biāo)端的10庫只需對配置文件進行如下改動
重新執(zhí)行步驟四命令,執(zhí)行后效果如下,大功告成。
另外還有一個配置項特意說明下
配置項 說明
key_exists 當(dāng)源目的有重復(fù)key,是否進行覆寫。rewrite表示源端覆蓋目的端。none表示一旦發(fā)生進程直接退出。ignore表示保留目的端key,忽略源端的同步key。該值在rump模式下沒有用。
當(dāng)前僅僅是單個節(jié)點到單個節(jié)點的同步,如涉及到集群等其他一些場景下,請參考官方文檔說明,自行測試。
騰訊云、阿里云、Google谷歌云、華為云、天翼云、移動云、AWS亞馬遜云代理商哪家好?推薦找755800
海外服務(wù)器免費測試:http://running-capacitor.com/