redis資料遷移
阿新 • • 發佈:2018-12-17
一:實現功能
通過shell指令碼實現具體兩個redis裡的資料的拷貝
二:限制
1. 兩個redis裡的相同名稱的儲存結構會被跳過
如:如果兩個redis裡有相同的雜湊表runoobkey,在執行指令碼的時候會出現下面錯誤:
(error) BUSYKEY Target key name already exists.
2. 根據1的描述,不能實現類似將redis1的雜湊表的key-value鍵值對新增到redis2的相同的雜湊表中
三:指令碼檔案
#!/bin/bash #redis 源ip src_ip=192.168.110.4 #redis 源port src_port=6379 #redis 源庫 src_db=0 #redis 源密碼 src_pw=123 #redis 目的ip dest_ip=192.168.110.6 #redis 目的port dest_port=6379 #redis 目的 dest_db=0 #redis 目的密碼 dest_pw=456 redis-cli -h $src_ip -p $src_port -a $src_pw -n $src_db keys "runoob*" | while read key do redis-cli -h $src_ip -p $src_port -a $src_pw -n $src_db --raw dump $key | head -c-1 | redis-cli -h $dest_ip -p $dest_port -a $dest_pw -n $dest_db -x restore $key 0 echo "migrate key $key" done