redis 從一個庫復制一個key到另外一個庫


#復制全部一個庫的全部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; }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM