一、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

posted on 2023-03-10 16:30  a120608yby  阅读(2465)  评论(0编辑  收藏  举报