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)文章
springboot中redis并發(fā)鎖的等待時(shí)間設(shè)置長(zhǎng)短的方法
在SpringBoot應(yīng)用中,Redis鎖的等待時(shí)間設(shè)置不當(dāng)可能導(dǎo)致資源浪費(fèi)、響應(yīng)時(shí)間增加、死鎖風(fēng)險(xiǎn)升高、系統(tǒng)負(fù)載增加、業(yè)務(wù)邏輯延遲以及故障恢復(fù)慢等問(wèn)題,建議合理設(shè)置等待時(shí)間,并考慮使用其他分布式鎖實(shí)現(xiàn)方式提高性能2024-10-10解決Redis分布式鎖的誤刪問(wèn)題和原子性問(wèn)題
Redis的分布式鎖是通過(guò)利用Redis的原子操作和特性來(lái)實(shí)現(xiàn)的,為了保證數(shù)據(jù)的一致性和避免沖突,可以使用分布式鎖來(lái)進(jìn)行同步控制,本文給大家介紹了如何解決Redis分布式鎖的誤刪問(wèn)題和原子性問(wèn)題,需要的朋友可以參考下2024-02-02redis實(shí)現(xiàn)簡(jiǎn)單分布式鎖
這篇文章主要介紹了redis實(shí)現(xiàn)簡(jiǎn)單分布式鎖,文中通過(guò)代碼示例講解的非常詳細(xì),需要的朋友可以參考下2013-09-09使用寶塔在服務(wù)器上配置Redis的詳細(xì)圖文教程
這篇文章主要給大家介紹了關(guān)于使用寶塔在服務(wù)器上配置Redis的相關(guān)資料,包括下載和安裝Redis,開(kāi)放端口,修改配置文件以允許遠(yuǎn)程訪(fǎng)問(wèn)和設(shè)置密碼,該過(guò)程對(duì)于理解Redis在項(xiàng)目部署中的配置提供了實(shí)用指導(dǎo),需要的朋友可以參考下2024-11-11Redis教程(六):Sorted-Sets數(shù)據(jù)類(lèi)型
這篇文章主要介紹了Redis教程(六):Sorted-Sets數(shù)據(jù)類(lèi)型,本文講解了Sorted-Sets數(shù)據(jù)類(lèi)型概述、相關(guān)命令列表、命令使用示例、應(yīng)用范圍等內(nèi)容,需要的朋友可以參考下2015-04-04