redis批量遷移key的實(shí)例
我們知道m(xù)igrate 命令可以遷移redis的多個(gè)key,但是如果redis的key有非常多,那用起來(lái)就很不方便了。
所以下面分享一個(gè)腳本來(lái)實(shí)現(xiàn)批量key的遷移,主要使用的命令為dump和restore
腳本如下:
#!/bin/bash redis-cli -h host1 -p 63791 -n 0 keys "*" | while read key do redis-cli -h host1 -p 63791 -n 0 --raw dump $key | perl -pe 'chomp if eof' | redis-cli -h host2 -p 6379 -n 0 -x restore $key 0 echo "migrate key $key" done
腳本具體解析:
- 使用redis-cli連接到host1服務(wù)器,n代表database,執(zhí)行keys "*"命令獲取所有鍵名。
- 使用while read key循環(huán)讀取每個(gè)鍵名。
- 對(duì)于每個(gè)鍵名,使用redis-cli連接到host1服務(wù)器,執(zhí)行dump命令將鍵值序列化輸出。
- 使用perl -pe 'chomp if eof’命令處理輸出結(jié)果,去除換行符。
- 使用redis-cli連接到host2服務(wù)器,執(zhí)行restore命令將鍵值恢復(fù)到host2服務(wù)器,ttl=0代表永不過(guò)期。
- 輸出遷移的鍵名。
測(cè)試:
1、我在本地模擬了兩個(gè)redis實(shí)例。ip都為127.0.0.1,端口一個(gè)是默認(rèn)的6379,一個(gè)是63791
并且分別set了不同的key
127.0.0.1:63791> keys * 1) "age" 2) "like" 3) "colour"
127.0.0.1:6379> keys * 1) "student"
2、使用腳本批量將63791實(shí)例的key遷移到6379實(shí)例

我的腳本如下:
#!/bin/bash redis-cli -h 127.0.0.1 -p 63791 -n 0 keys "*" | while read key do redis-cli -h 127.0.0.1 -p 63791 -n 0 --raw dump $key | perl -pe 'chomp if eof' | redis-cli -h 127.0.0.1 -p 6379 -n 0 -x restore $key 0 echo "migrate key $key" done
執(zhí)行sh migrate.sh啟動(dòng)腳本
jiagangdeMacBook-Pro jag-ide-dev/redis ? sh migrate.sh OK migrate key age OK migrate key like OK migrate key colour
查看6379實(shí)例
可以看到63791實(shí)例上的數(shù)據(jù)已經(jīng)被遷移了過(guò)來(lái)
127.0.0.1:6379> keys * 1) "like" 2) "age" 3) "student" 4) "colour" 127.0.0.1:6379> get colour "red"
到此這篇關(guān)于redis批量遷移key的實(shí)例的文章就介紹到這了,更多相關(guān)redis批量遷移key內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- php實(shí)現(xiàn)redis數(shù)據(jù)庫(kù)指定庫(kù)號(hào)遷移的方法
- Redis源碼解析:集群手動(dòng)故障轉(zhuǎn)移、從節(jié)點(diǎn)遷移詳解
- Redis數(shù)據(jù)導(dǎo)入導(dǎo)出以及數(shù)據(jù)遷移的4種方法詳解
- Redis migrate數(shù)據(jù)遷移工具的使用教程
- Redis數(shù)據(jù)遷移RedisShake的實(shí)現(xiàn)方法
- Redis 數(shù)據(jù)遷移的項(xiàng)目實(shí)踐
- Redis數(shù)據(jù)遷移的多種方法詳解
- redis通過(guò)redis-dump鏡像實(shí)現(xiàn)數(shù)據(jù)遷移
- Redis鍵遷移(move、dump、restore、migrate)的三種實(shí)現(xiàn)
相關(guān)文章
Redis數(shù)據(jù)庫(kù)中實(shí)現(xiàn)分布式鎖的方法
這篇文章主要介紹了Redis數(shù)據(jù)庫(kù)中實(shí)現(xiàn)分布式鎖的方法,Redis是一個(gè)高性能的主存式數(shù)據(jù)庫(kù),需要的朋友可以參考下2015-06-06
WINDOWS中REDIS主從配置實(shí)現(xiàn)代碼解析
這篇文章主要介紹了WINDOWS中REDIS主從配置實(shí)現(xiàn)代碼解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
通過(guò) Redis 實(shí)現(xiàn) RPC 遠(yuǎn)程方法調(diào)用(支持多種編程語(yǔ)言)
這篇文章主要介紹了通過(guò) Redis 實(shí)現(xiàn) RPC 遠(yuǎn)程方法調(diào)用,支持多種編程語(yǔ)言,本文就以Ruby和Python為例,給出了實(shí)現(xiàn)代碼,需要的朋友可以參考下2014-09-09
Linux系統(tǒng)下安裝Redis數(shù)據(jù)庫(kù)過(guò)程
大家好,本篇文章主要講的是Linux系統(tǒng)下安裝Redis數(shù)據(jù)庫(kù)過(guò)程,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12
Redis存儲(chǔ)斷點(diǎn)續(xù)傳文件狀態(tài)的最佳實(shí)踐
在斷點(diǎn)續(xù)傳系統(tǒng)中,如何高效地存儲(chǔ)和更新文件上傳狀態(tài)是關(guān)鍵,得益于 Redis 高效的內(nèi)存操作和多種數(shù)據(jù)結(jié)構(gòu)的支持,它非常適合用于存儲(chǔ)上傳過(guò)程中的臨時(shí)狀態(tài)信息,下面,我們將探討如何利用 Redis 實(shí)現(xiàn)文件上傳狀態(tài)的存儲(chǔ),需要的朋友可以參考下2024-12-12
Redis數(shù)據(jù)結(jié)構(gòu)之Set結(jié)構(gòu)詳解
本文介紹了Redis中Set集合的數(shù)據(jù)結(jié)構(gòu),主要其Int種兩種編碼方式IntSet和Dict以及如何根據(jù)數(shù)據(jù)特征自動(dòng)切換,IntSet通過(guò)緊湊的整數(shù)布局實(shí)現(xiàn)極致內(nèi)存節(jié)??;Dict則提供高效的唯一性校驗(yàn),兩種編碼方式和閾值機(jī)制共同實(shí)現(xiàn)了了Set的內(nèi)存效率和操作性能的間的平衡2026-05-05
redis實(shí)現(xiàn)簡(jiǎn)單分布式鎖
這篇文章主要介紹了redis實(shí)現(xiàn)簡(jiǎn)單分布式鎖,文中通過(guò)代碼示例講解的非常詳細(xì),需要的朋友可以參考下2013-09-09

