#復制全部一個庫的全部key
#!/bin/bash src_ip=127.0.0.1 src_port=8090 src_db=14 src_pw='1234' dest_ip=127.0.0.1 dest_port=8090 dest_db=15 desc_pw='1234' redis-cli -h $src_ip -p $src_port -a $src_pw -n $src_db keys "*" | while read key do redis-cli -h $src_ip -p $src_port -a $src_pw -n $src_db --raw dump $key | perl -pe 'chomp if eof' | redis-cli -h $dest_ip -p $dest_port -a $desc_pw -n $dest_db -x restore $key 0 echo "migrate key $key" done
#復制一個庫的部分key
#!/bin/bash src_ip=127.0.0.1 src_port=8090 src_db=14 src_pw='1234' dest_ip=127.0.0.1 dest_port=6379 dest_db=2 desc_pw='1234' #要遍歷的key k=(test ws we) for loop in ${k[*]} do redis-cli -h $src_ip -p $src_port -a $src_pw -n $src_db --raw dump $loop | perl -pe 'chomp if eof' | redis-cli -h $dest_ip -p $dest_port -a $desc_pw -n $dest_db -x restore $loop 0 echo "The value is: $loop" done
#只復制一個key
redis-cli -h 127.0.0.1 -p 8090 -a 1234 -n 14 --raw dump test | perl -pe 'chomp if eof' | redis-cli -h 127.0.0.1 -p 8090 -a 1234 -n 15 -x restore test 0
-h hostip,
-p 端口,
-a 密碼,
-n db庫,
--no-raw選項是要求命令的返回結果必須是原始的格式,
--raw恰恰相反,返回格式化后的結果,
-x 選項代表從標准輸入(stdin)讀取數據
perl -p(perl 命令可自行百度) 使 Perl 隱式地循環遍歷指定的文件,同時打印所有的行。自動循環+自動輸出,相當於 while(<>) { 腳本; print; }