Redis Cluster在线迁移
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,由于之前的redis cluster物理硬件性能不足。决定升级到更好的服务器上。考虑到redis是核心生产数据库,决定在线迁移,迁移过程,不中断服务。下面是测试环境的完成迁移步骤:1. 原环境(测试环
千家信息网最后更新 2025年11月07日Redis Cluster在线迁移
由于之前的redis cluster物理硬件性能不足。决定升级到更好的服务器上。
考虑到redis是核心生产数据库,决定在线迁移,迁移过程,不中断服务。
下面是测试环境的完成迁移步骤:
1. 原环境(测试环境,没有创建slave)
10.21.14.251:700010.21.14.251:700110.21.14.251:7002
2. 在新主机上,启动三个redis实例
10.21.10.120:700010.21.10.120:700110.21.10.120:7002
3. 将三个redis,都添加到集群中. 命令格式redis-trib.rb add-node <新增节点名> < 原集群节点名>
./redis-trib.rb add-node 10.21.10.120:7000 10.21.14.251:7000./redis-trib.rb add-node 10.21.10.120:7001 10.21.14.251:7000./redis-trib.rb add-node 10.21.10.120:7002 10.21.14.251:7000
4. 确认添加成功之后,开始reshard slot
./redis-trib.rb reshard 10.21.10.120:7000
5. 遇到点问题,由于网络超时等原因,导致resharding中断。然后出现两边都有slot的情况,需要通过fix的方式来修复
[redis@ip-10-21-14-251 redis]$ ./redis-trib.rb reshard 10.21.10.120:7000>>> Performing Cluster Check (using node 10.21.10.120:7000)M: 4422ab38377fa8828e0f7884570b3b482a66496b 10.21.10.120:7000 slots:5026-5460 (435 slots) master 0 additional replica(s)M: 5b38e63a1091baa3a871a52275489a2aa1d28bfb 10.21.10.120:7002 slots:894-3397 (2504 slots) master 0 additional replica(s)M: bb1572074d41254e5b4d5aae5c52e54f5129d6d5 10.21.14.251:7001 slots:3398-4999,5461-15922 (12064 slots) master 0 additional replica(s)M: 396a7fbd2ec61752f9e848a1d8cc7b405aef0356 10.21.14.251:7000 slots: (0 slots) master 0 additional replica(s)M: 9f215e7e4b511f3d2bbf5d734731899b71a62a3b 10.21.10.120:7001 slots:0-893,5000-5025,15923-15948 (946 slots) master 0 additional replica(s)M: 0c9b383f65ae4fefc5e02617fb76a845d7510a53 10.21.14.251:7002 slots:15949-16383 (435 slots) master 0 additional replica(s)[OK] All nodes agree about slots configuration.>>> Check for open slots...[WARNING] Node 10.21.10.120:7002 has slots in importing state (3398).[WARNING] Node 10.21.14.251:7001 has slots in migrating state (3398).[WARNING] The following slots are open: 3398>>> Check slots coverage...[OK] All 16384 slots covered.*** Please fix your cluster problems before resharding <<<<<<<<<<<<<<<<<<<<<
6. 可以使用下面命令进行集群检查
./redis-trib.rb check 10.21.10.120:7000
7. 执行下面命令进行修复,然后就可以继续reshard slot了
./redis-trib.rb fix 10.21.10.120:7000
8. 全部slot迁移完成
$ ./redis-trib.rb check 10.21.10.120:7000>>> Performing Cluster Check (using node 10.21.10.120:7000)M: 4422ab38377fa8828e0f7884570b3b482a66496b 10.21.10.120:7000 slots:3399-4999,5026-7332 (3908 slots) master 0 additional replica(s)M: 5b38e63a1091baa3a871a52275489a2aa1d28bfb 10.21.10.120:7002 slots:894-3398,7333-15332,15949-16383 (10940 slots) master 0 additional replica(s)M: bb1572074d41254e5b4d5aae5c52e54f5129d6d5 10.21.14.251:7001 slots: (0 slots) master 0 additional replica(s)M: 396a7fbd2ec61752f9e848a1d8cc7b405aef0356 10.21.14.251:7000 slots: (0 slots) master 0 additional replica(s)M: 9f215e7e4b511f3d2bbf5d734731899b71a62a3b 10.21.10.120:7001 slots:0-893,5000-5025,15333-15948 (1536 slots) master 0 additional replica(s)M: 0c9b383f65ae4fefc5e02617fb76a845d7510a53 10.21.14.251:7002 slots: (0 slots) master 0 additional replica(s)[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered.
确认一下状态
[redis@ip-10-21-14-251 redis]$ ./redis-cli -p 7000 cluster nodesbb1572074d41254e5b4d5aae5c52e54f5129d6d5 10.21.14.251:7001 master - 0 1509611814919 6 connected9f215e7e4b511f3d2bbf5d734731899b71a62a3b 10.21.10.120:7001 master - 0 1509611811917 14 connected 0-893 5000-5025 15333-159485b38e63a1091baa3a871a52275489a2aa1d28bfb 10.21.10.120:7002 master - 0 1509611815923 13 connected 894-3398 7333-15332 15949-16383396a7fbd2ec61752f9e848a1d8cc7b405aef0356 10.21.14.251:7000 myself,master - 0 0 1 connected4422ab38377fa8828e0f7884570b3b482a66496b 10.21.10.120:7000 master - 0 1509611813919 12 connected 3399-4999 5026-73320c9b383f65ae4fefc5e02617fb76a845d7510a53 10.21.14.251:7002 master - 0 1509611812917 3 connected
9. 确认状态OK的话,开始删除节点
./redis-trib.rb del-node 10.21.14.251:7000 396a7fbd2ec61752f9e848a1d8cc7b405aef0356 ./redis-trib.rb del-node 10.21.14.251:7001 bb1572074d41254e5b4d5aae5c52e54f5129d6d5 ./redis-trib.rb del-node 10.21.14.251:7002 0c9b383f65ae4fefc5e02617fb76a845d7510a53
10. 干掉10.21.14.251:7002成功,
[redis@ip-10-21-14-251 redis]$ ./redis-trib.rb del-node 10.21.14.251:7002 0c9b383f65ae4fefc5e02617fb76a845d7510a53>>> Removing node 0c9b383f65ae4fefc5e02617fb76a845d7510a53 from cluster 10.21.14.251:7002>>> Sending CLUSTER FORGET messages to the cluster...>>> SHUTDOWN the node.[envuser@ip-10-21-14-251 redis]$ ./redis-trib.rb check 10.21.10.120:7000>>> Performing Cluster Check (using node 10.21.10.120:7000)M: 4422ab38377fa8828e0f7884570b3b482a66496b 10.21.10.120:7000 slots:3399-4999,5026-7332 (3908 slots) master 0 additional replica(s)M: 5b38e63a1091baa3a871a52275489a2aa1d28bfb 10.21.10.120:7002 slots:894-3398,7333-15332,15949-16383 (10940 slots) master 0 additional replica(s)M: bb1572074d41254e5b4d5aae5c52e54f5129d6d5 10.21.14.251:7001 slots: (0 slots) master 0 additional replica(s)M: 396a7fbd2ec61752f9e848a1d8cc7b405aef0356 10.21.14.251:7000 slots: (0 slots) master 0 additional replica(s)M: 9f215e7e4b511f3d2bbf5d734731899b71a62a3b 10.21.10.120:7001 slots:0-893,5000-5025,15333-15948 (1536 slots) master 0 additional replica(s)[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered.
状态检查
[redis@ip-10-21-14-251 redis]$ ./redis-cli -p 7000 cluster nodesbb1572074d41254e5b4d5aae5c52e54f5129d6d5 10.21.14.251:7001 master - 0 1509611900094 6 connected9f215e7e4b511f3d2bbf5d734731899b71a62a3b 10.21.10.120:7001 master - 0 1509611902100 14 connected 0-893 5000-5025 15333-159485b38e63a1091baa3a871a52275489a2aa1d28bfb 10.21.10.120:7002 master - 0 1509611901098 13 connected 894-3398 7333-15332 15949-16383396a7fbd2ec61752f9e848a1d8cc7b405aef0356 10.21.14.251:7000 myself,master - 0 0 1 connected4422ab38377fa8828e0f7884570b3b482a66496b 10.21.10.120:7000 master - 0 1509611899093 12 connected 3399-4999 5026-7332
根据上面步骤,删除剩余节点即可。
经过测试,应用在迁移过程中,没有受到任何影响。但是应用连接池的IP需要找机会增加10.21.10.120。
更多链接,请参考:
Redis Cluster集群部署搭建
Redis Cluster 添加/删除 完整折腾步骤
命令
步骤
状态
环境
集群
测试
成功
三个
节点
过程
应用
服务
检查
在线
主机
原因
实例
性能
情况
数据
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
嵌入式软件开发审批
join数据库使用方法
upnp 服务器
c 清空文件中的数据库
思科怎么设置dns服务器
本地服务器磁盘阵列
苏州市信息网络安全协会
慈溪专业软件开发教程
巨杉数据库技术来源
数据库描述正确的是
河北佳诚网络技术有限公司
保险APP软件开发招聘
软件开发算淘宝虚拟商品吗
服务器数据连接不显示文件
管理信息系统数据库规范化
服务器回收公司在线咨询
数据库vfp题
如何建造一台云服务器
数据库与用友u8连接
数据库数据加一个数
有关网络技术的节目剧本
软件开发前景预测2021
我国现有中外数据库多少个
江西省网络安全技能大赛
网络安全等级保护条例生效时间
战地服务器地址
网络安全协会广东
国家网络安全宣传周完整版
钱包系统的数据库要包含什么
dbs系列数据库安全审计系统