不建议手动迁移,以稳来行走天下,免的加班加点。除非您非常专业,每一步都不能错。一错直接完,问题排除起来非常繁琐。在这直接忽略,使用第三方工具 Redis Shark 协助我们迁移,简单、直接、效率高,稳定
原集群
IP | 节点 |
---|---|
192.168.86.135 | 6379,6380 |
192.168.86.136 | 6381,6382 |
192.168.86.137 | 6383,6384 |
新集群
IP | 端口 |
---|---|
192.168.86.138 | 6371,6372 |
192.168.86.139 | 6373,6374 |
192.168.86.140 | 6375,6376 |
RedisShake 官方文档
https://github.com/alibaba/RedisShake
RedisFullCheck 官方文档
https://github.com/alibaba/RedisFullCheck
################# 先搭建好新的集群环境 #################
# 原本的集群环境下
[root@redis-master opt]# cd /opt
[root@redis-master opt]# wget https://github.com/alibaba/RedisShake/releases/download/release-v2.0.3-20200724/redis-shake-v2.0.3.tar.gz
[root@redis-master opt]# tar -zxvf redis-shake-v2.0.3.tar.gz
[root@redis-master opt]# cd redis-shake-v2.0.3
[root@redis-master redis-shake-v2.0.3]# vi redis-shake.conf
conf.version = 1
id = redis-shake
source.type = cluster
# 配置原集群主节点即可
source.address = 192.168.86.135:6379,192.168.86.136:6381,192.168.86.137:6383
source.auth_type = auth
source.password_raw = 123456
# 配置新集群主节点即可
target.address = 192.168.86.138:6371,192.168.86.139:6373,192.168.86.140:6375
target.auth_type = auth
target.password_raw = 123456
# 启动迁移
[root@redis-master redis-shake-v2.0.3]# ./redis-shake.linux -conf=redis-shake.conf -type=sync
# 查看新的集群环境下是否迁移成功
[root@redis-new-master redis]# pwd
/usr/local/redis
[root@redis-new-master redis]# ./bin/redis-cli -a 123456 --cluster check 192.168.86.138:6371
# 检测迁移后是否数据一致
[root@redis-master opt]# wget https://github.com/alibaba/RedisFullCheck/releases/download/release-v1.4.8-20200212/redis-full-check-1.4.8.tar.gz
[root@redis-master opt]# tar -zxvf redis-full-check-1.4.8.tar.gz
[root@redis-master redis-full-check-1.4.8]#
./redis-full-check -s "192.168.86.138:6371,192.168.86.139:6373,192.168.86.140:6375" \
--sourcepassword=123456 -t "192.168.86.138:6371,192.168.86.139:6373,192.168.86.140:6375" \
--targetpassword=123456 --comparemode=1 --comparetimes=1 --qps=10 --batchcount=100 \
--sourcedbtype=1 --targetdbtype=1