redisシリーズ-redisマシン間レプリケーション指定key(二)
838 ワード
前言:redisデータをコピーして、まずredisのdumpを考える.rdbスナップショットファイルを新しいredisのデータディレクトリにコピーして起動すればよいが、これですべてのデータをコピーして過去にコピーし、コピーされたredisにデータがあれば上書きされるので、この方法はデータの全体的な移行にのみ適している.
しかし,redis内の部分keyを異なるマシン上の異なるクラスタのredis内に書く必要がある場合があり,この方法がある.
新規スクリプト:movekey.sh
以上の役割は192.168.1.1.29のすべてのday:*のkeyを192.168.1.28にコピーすることです.
しかし,redis内の部分keyを異なるマシン上の異なるクラスタのredis内に書く必要がある場合があり,この方法がある.
新規スクリプト:movekey.sh
#!/bin/bash
#redis
src_ip=192.168.1.129
#redis
src_port=6379
#redis
src_db=0
#redis
src_pw=123
#redis
dest_ip=192.168.1.128
#redis
dest_port=6379
#redis
dest_db=0
#redis
dest_pw=123
redis-cli -h $src_ip -p $src_port -a $src_pw -n $src_db keys "day:*" | 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
以上の役割は192.168.1.1.29のすべてのday:*のkeyを192.168.1.28にコピーすることです.