转自:http://blog.51cto.com/hsbxxl/1978491
由于之前的redis cluster物理硬件性能不足。决定升级到更好的服务器上。
考虑到redis是核心生产数据库,决定在线迁移,迁移过程,不中断服务。
下面是测试环境的完成迁移步骤:
1. 原环境(测试环境,没有创建slave)
1 2 3 |
|
2. 在新主机上,启动三个redis实例
1 2 3 |
|
3. 将三个redis,都添加到集群中. 命令格式redis-trib.rb add-node <新增节点名> < 原集群节点名>
1 2 3 |
|
4. 确认添加成功之后,开始reshard slot
1 |
|
5. 遇到点问题,由于网络超时等原因,导致resharding中断。然后出现两边都有slot的情况,需要通过fix的方式来修复
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
6. 可以使用下面命令进行集群检查
1 |
|
7. 执行下面命令进行修复,然后就可以继续reshard slot了
1 |
|
8. 全部slot迁移完成
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
确认一下状态
1 2 3 4 5 6 7 |
|
9. 确认状态OK的话,开始删除节点
1 2 3 |
|
10. 干掉10.21.14.251:7002成功,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
状态检查
1 2 3 4 5 6 |
|
根据上面步骤,删除剩余节点即可。
经过测试,应用在迁移过程中,没有受到任何影响。但是应用连接池的IP需要找机会增加10.21.10.120。