一、redis-dump方式
1、Ruby安装(Rocky Linux 9)
dnf -y install ruby ruby-devel
2、修改Rubygems默认源
# 列出默认源 gem sources # 移除默认源 gem source -r https://rubygems.org/ # 使用腾讯云镜像源加速 gem source -a http://mirrors.tencent.com/rubygems/
3、安装redis-dump
gem install redis-dump -V
4、使用redis-dump导出数据
redis-dump -u password@10.32.161.130:6379 > redis_6379.json
5、使用redis-load导入joson数据
< redis_6379.json redis-load -u password@10.32.161.130:6379
6、集群数据导出(集群各个实例分别导出)
redis-dump -u password@10.32.161.131:6379 -d 0 > 6379.json redis-dump -u password@10.32.161.132:6379 -d 0 > 6379.json redis-dump -u password@10.32.161.133:6379 -d 0 > 6379.json
7、集群json数据导入(集群各个实例分别导出)
cat 6379.json | redis-load -u password@10.32.161.134:6379 -d 0 cat 6379.json | redis-load -u password@10.32.161.134:6379 -d 0 cat 6379.json | redis-load -u password@10.32.161.134:6379 -d 0
二、AOF方式
1、拷贝源实例redis数据目录下的appendonly.aof文件到目标实例(源实例需要开启aof功能)
2、在目标实例导入appendonly.aof文件
redis-cli -h 10.32.161.130 -a password --pipe < appendonly.aof
三、RDB文件方式
1、关闭源实例aof功能
2、在源实例执行save命令
redis-cli -h 10.32.161.130 -p 6379 -a password save
3、关闭源实例redis服务
4、拷贝源实例数据目录下的dump.rdb到目标实例数据目录下后,重新启动目标实例redis服务(注意目标实例数据目录下的rdb文件名称也是:dump.rdb)
systemctl restart redis
四、指定Key数据同步方式
1、编写脚本
# vim redis-sync.sh #!/bin/bash # redis-cli -h 10.32.161.130 -p 6379 -a password -n 0 keys "*" | while read key do redis-cli -h 10.32.161.130 -p 6379 -a password -n 0 --raw dump $key | perl -pe 'chomp if eof' | redis-cli -h 10.32.161.131 -p 6379 -a password -n 1 -x restore $key 0 echo "migrate key $key" done
2、执行脚本
chmod +x redis-sync.sh ./redis-sync.sh
参考:https://github.com/delano/redis-dump