新聞資訊
租用幫助
阿里數(shù)據(jù)遷移同步工具redis-shake
2023-12-13 08:47:38
摘要:這里給大家分享一個(gè)Redis的數(shù)據(jù)遷移和清洗工具那就是阿里巴巴開(kāi)源工具redis-shake,redis-shake工具使用起來(lái)比較簡(jiǎn)單,也經(jīng)歷過(guò)大廠的認(rèn)證,正確性和穩(wěn)定性都有非常保障。

這里給大家分享一個(gè)Redis的數(shù)據(jù)遷移和清洗工具那就是阿里巴巴開(kāi)源工具redis-shake,redis-shake工具使用起來(lái)比較簡(jiǎn)單,也經(jīng)歷過(guò)大廠的認(rèn)證,正確性和穩(wěn)定性都有非常保障。


阿里云賬戶多充多送http://hkonecloud.755800.com/

redis-shake 常見(jiàn)于生產(chǎn)環(huán)境中將 Redis 單機(jī)實(shí)例遷移到集群實(shí)例或者需要無(wú)縫將一個(gè)小規(guī)格 Redis 實(shí)例遷移到另一個(gè)大規(guī)格 Redis 實(shí)例。

redis-shake 支持遷移單實(shí)例、集群等,也支持將數(shù)據(jù)備份或者遷移到阿里云。經(jīng)過(guò)迭代,目前  redis-shake 有兩個(gè)版本。

從 GitHub 下載二進(jìn)制或者自己從代碼編譯都行,redis-shake 使用 Go 語(yǔ)言開(kāi)發(fā),整體代碼也比較簡(jiǎn)單易懂,感興趣的小伙伴也可以自行查閱。除此之外,如果要使用數(shù)據(jù)過(guò)濾的功能,可以使用 Lua 語(yǔ)言進(jìn)行自定義,保證了工具的靈活性。

更多項(xiàng)目詳情請(qǐng)查看如下鏈接。

開(kāi)源項(xiàng)目地址:https://github.com/alibaba/RedisShake

開(kāi)源項(xiàng)目作者:https://github.com/alibaba

實(shí)戰(zhàn)

正式操作前先在測(cè)試環(huán)境實(shí)踐一把看看效果如何,先說(shuō)明下環(huán)境

源庫(kù):192.168.28.142

目標(biāo)庫(kù):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

步驟二:

解壓,進(jìn)入相應(yīng)目錄看看有哪些東東

步驟三:

更改配置文件redis-shake.conf

日志輸出

源端連接配置

目標(biāo)端設(shè)置

步驟四:

./start.sh redis-shake.conf sync


查看日志文件

查看下數(shù)據(jù)同步情況,如下圖,發(fā)現(xiàn)所有的庫(kù)都同步過(guò)來(lái)了,非常nice。

但如果只想同步某個(gè)庫(kù)又該怎么操作呢?

馬上查閱了配置文件及官方文檔,稍作調(diào)整就可以,具體如

配置項(xiàng)         說(shuō)明

target.db:設(shè)置待遷移的數(shù)據(jù)在目的Redis中的邏輯數(shù)據(jù)庫(kù)名。例如,要將所有數(shù)據(jù)遷移到目的Redis中的DB10,則需將此參數(shù)的值設(shè)置為10。當(dāng)該值設(shè)置為-1時(shí),邏輯數(shù)據(jù)庫(kù)名在源Redis和目的Redis中的名稱相同,即源Redis中的DB0將被遷移至目的Redis中的DB0,DB1將被遷移至DB1,以此類推。

filter.db.whitelist 指定的db被通過(guò),比如0;5;10將會(huì)使db0, db5, db10通過(guò), 其他的被過(guò)濾

那比如我這邊只想把源端的10庫(kù)同步至目標(biāo)端的10庫(kù)只需對(duì)配置文件進(jìn)行如下改動(dòng)

重新執(zhí)行步驟四命令,執(zhí)行后效果如下,大功告成。


另外還有一個(gè)配置項(xiàng)特意說(shuō)明下

配置項(xiàng) 說(shuō)明

key_exists 當(dāng)源目的有重復(fù)key,是否進(jìn)行覆寫(xiě)。rewrite表示源端覆蓋目的端。none表示一旦發(fā)生進(jìn)程直接退出。ignore表示保留目的端key,忽略源端的同步key。該值在rump模式下沒(méi)有用。

當(dāng)前僅僅是單個(gè)節(jié)點(diǎn)到單個(gè)節(jié)點(diǎn)的同步,如涉及到集群等其他一些場(chǎng)景下,請(qǐng)參考官方文檔說(shuō)明,自行測(cè)試。

騰訊云、阿里云、Google谷歌云、華為云、天翼云、移動(dòng)云、AWS亞馬遜云代理商哪家好?推薦找755800


海外服務(wù)器免費(fèi)測(cè)試http://hbjsdrq.com/


USA-IDC為您提供免備案服務(wù)器 0元試用
立即聯(lián)系在線客服,即可申請(qǐng)免費(fèi)產(chǎn)品試用服務(wù)
立即申請(qǐng)