1.简介
Redis-shake是阿里开源的使用golang语言开发的Redis数据同步工具,支持redis standalone、sentinel、cluster。
github地址 https://github.com/alibaba/RedisShake
支持的迁移模式:
decode: 把Redis RDB文件解析成人类可读的文件格式.
restore: 把Rdis RDB文件作为数据源,恢复到目标Redis实例中.
dump: 对源Redis实例中的数据dump到RDB文件中.
sync: 基于Redis sync/psync命令从源redis实例同步到目标Redis实例,该模式包含全量同步和增量同步两个阶段。(通过默认Redis Slave来实现).
rump: 基于Redis scan命令的方式从源Redis同步到目标Redis实例。只支持全量同步,这种方式通常适用于源redis不支持sync/psync命令的场景.
2.下载
wget https://github.com/alibaba/RedisShake/releases/download/release-v2.1.1-20210903/release-v2.1.1-20210903.tar.gz //下载
tar zxvf release-v2.1.1-20210903.tar.gz //解压
解压之后会看到以下文件,我们一般只会用到redis-shake.conf
3.配置文件修改:
单个节点到单个节点restore模式配置文件修改:
log.file =/opt/redis-shake/redis-shake.log //工具运行日志文件路径 http_profile = -1 //查看 metric 端口, -1 表示不启用. 如果是`restore`模式,只有设置为-1才会在完成RDB恢复后退出,否则会一直block。
source.address = 192.168.79.151:6379 //源端IP地址和端口 source.rdb.input = /mnt/data/redis/dump.rdb //源端RDB文件路径 target.address = 192.168.79.146:6379 //目的端IP地址和端口 target.rdb.output = /mnt/data/redis/redisdump.rdb //目的端RDB文件的存放路径 key_exists = rewrite //当源端和目的段有相同的key时,是否进行覆盖,“rewrite”表示覆盖目的段的key值
4.执行启动命令:
./redis-shake.linux -type=restore -conf=redis-shake.conf //restore模式