1.Redis数据迁移同步
root@ubuntu2204-98:~# wget https://go.dev/dl/go1.24.6.linux-amd64.tar.gz
root@ubuntu2204-98:~# tar zxvf go1.24.6.linux-amd64.tar.gz
root@ubuntu2204-98:~# mv go /usr/local/
root@ubuntu2204-98:~# vi /etc/profile
export PATH=$PATH:$JAVA_HOME/bin:/usr/local/go/bin #配置环境变量
# 下载工具 需要配置goland环境
git clone https://github.com/alibaba/RedisShake
cd RedisShake
sh build.sh # 构建项目
cd bin
# 编写配置文件
vi shake.toml
[sync_reader]
cluster = false # 源端是否为集群
address = "127.0.0.1:6379" # 源端地址, 当源端为集群时,address 为集群中的任意一个节点即可
username = "" # 源端无鉴权时,不配置username和password |源端使用ACL账号时,配置username和password | 源端使用传统账号时,仅配置password
password = ""
tls = false # 源端是否开启 TLS/SSL,不需要配置证书因为 RedisShake 没有校验服务器证书
sync_rdb = true # 是否同步 RDB,设置为 false 时,RedisShake 会跳过全量同步阶段
sync_aof = true # 是否同步 AOF,设置为 false 时,RedisShake 会跳过增量同步阶段,此时 RedisShake 会在全量同步阶段结束后退出
[redis_writer]
cluster = false # 是否为集群。
address = "127.0.0.1:6379" # 连接地址。当目的端为集群时,address 填写集群中的任意一个节点即可
username = "" # 源端无鉴权时,不配置username和password |源端使用ACL账号时,配置username和password | 源端使用传统账号时,仅配置password
password = ""
tls = false # 源端是否开启 TLS/SSL,不需要配置证书因为 RedisShake 没有校验服务器证书
# 启动redis-shark进行同步
nohup ./redis-shake shake.toml &
root@ubuntu2204-98:~/RedisShake/bin# tail -f nohup.out
2025-08-12 08:28:52 INF * username:
2025-08-12 08:28:52 INF * password: *********
2025-08-12 08:28:52 INF * tls: false
2025-08-12 08:28:52 INF create RedisStandaloneWriter
2025-08-12 08:28:52 INF * address: 127.0.0.1:6379
2025-08-12 08:28:52 INF * username:
2025-08-12 08:28:52 INF * password: *********
2025-08-12 08:28:52 INF * tls: false
2025-08-12 08:28:52 INF start syncing...
2025-08-12 08:28:52 INF [reader_116.198.37.137_6379] source db is not doing bgsave! continue.
2025-08-12 08:28:57 INF read_count=[857316], read_ops=[0.00], write_count=[857316], write_ops=[0.00], syncing rdb, size=[10 MiB/13 MiB]
2025-08-12 08:29:02 INF read_count=[871855], read_ops=[174347.75], write_count=[871855], write_ops=[174347.75], syncing aof, diff=[0]
2025-08-12 08:29:07 INF read_count=[871878], read_ops=[4.60], write_count=[871878], write_ops=[4.60], syncing aof, diff=[0]
2025-08-12 08:29:12 INF read_count=[871916], read_ops=[7.60], write_count=[871916], write_ops=[7.60], syncing aof, diff=[0]
2025-08-12 08:29:17 INF read_count=[871950], read_ops=[6.80], write_count=[871950], write_ops=[6.80], syncing aof, diff=[0]
2025-08-12 08:29:22 INF read_count=[871979], read_ops=[5.80], write_count=[871979], write_ops=[5.80], syncing aof, diff=[0]
2025-08-12 08:29:27 INF read_count=[872008], read_ops=[5.80], write_count=[872008], write_ops=[5.80], syncing aof, diff=[0]
......
2.调整应用配置
3.注意事项(不注意就会血泪史)
1.如果你使用mydumper备份还原数据,请记住备份还原一定统一用一个版本,否则备份的数据格式可能无法还原
2.mydumper在备份过程中有可能会备份到你主从同步中的binlog信息,从而记录错误,这特么也不知道是bug还是什么鬼,我是把多余的slave信息都给清理了