Redis遷移的兩種方式


第一種方式,將一個庫中的Key復制到另一個庫中:

#!/bin/bash

#redis 源ip
src_ip=192.168.0.1
#redis 源port
src_port=6379

#redis 源庫
src_db=11

#redis 目的ip
dest_ip=192.168.0.1
#redis 目的port
dest_port=6379

#redis 目的
dest_db=6

#redis 密碼
pw=123456

#要遷移的key前綴
#key_prefix=com.example.test


redis-cli -h $src_ip -p $src_port -a $pw -n $src_db keys "*" | while read key
do
    redis-cli -h $src_ip -p $src_port -a $pw -n $src_db --raw dump $key | perl -pe 'chomp if eof' | redis-cli -h $dest_ip -p $dest_port -a $pw -n $dest_db -x restore $key 0
    echo "migrate key $key"
done

第二種方式,復制其中某些Key值遷移:

#!/bin/bash

#redis 源ip
src_ip=192.168.0.1
#redis 源port
src_port=6379

#redis 源庫
src_db=1

#redis 目的ip
dest_ip=192.168.0.1
#redis 目的port
dest_port=6379

#redis 目的
dest_db=3

#redis 密碼
pw=123456

#要遍歷的key
k=(medical_record:id medical_record_attachment:id patient_family_present:id patient_present:id patient_disease:id family_disease:id patient_allergy:id history_allergy:id)

#要遷移的key前綴
#key_prefix=com.example.test

for loop in ${k[*]}
do
	redis-cli -h $src_ip -p $src_port -a $pw -n $src_db --raw dump $loop | perl -pe 'chomp if eof' | redis-cli -h $dest_ip -p $dest_port -a $pw -n $dest_db -x restore $loop 0
    echo "The value is: $loop"
done

  

  


免責聲明!

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



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