1. 程式人生 > >redis資料遷移

redis資料遷移

一:實現功能

通過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