前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >redis实战第十篇 集群收缩

redis实战第十篇 集群收缩

作者头像
我是李超人
发布2020-08-20 15:41:38
4960
发布2020-08-20 15:41:38
举报
文章被收录于专栏:大数据入坑指南

集群收缩的过程和集群扩容的过程正好是反过来的 将207和207的从节点208从集群下线 1.迁移207上的4096个槽 使用redis-cli迁移槽,先将1365个槽迁移到31上

代码语言:javascript
复制
# redis-cli --cluster reshard 192.168.0.207:6380
...
How many slots do you want to move (from 1 to 16384)? 1365
What is the receiving node ID? 92fd7c2a7b7b8933d1019e72a852f621f6b4faff
Please enter all the source node IDs.
  Type 'all' to use all the nodes as source nodes for the hash slots.
  Type 'done' once you entered all the source nodes IDs.
Source node #1: b94828e8816574d66b413c6bfa6de130eb14ee66
Source node #2: done
...

再将1365个槽迁移到32上

代码语言:javascript
复制
# redis-cli --cluster reshard 192.168.0.207:6380
How many slots do you want to move (from 1 to 16384)? 1365                                    
What is the receiving node ID? ed93d5ea74751d7124a2d5830ce0806a0c962d43
Please enter all the source node IDs.
  Type 'all' to use all the nodes as source nodes for the hash slots.
  Type 'done' once you entered all the source nodes IDs.
Source node #1: b94828e8816574d66b413c6bfa6de130eb14ee66
Source node #2: done
...

再将1366个槽迁移到33上

代码语言:javascript
复制
# redis-cli --cluster reshard 192.168.0.207:6380
How many slots do you want to move (from 1 to 16384)? 1366
What is the receiving node ID? 3641ec8359d5400e5540d77600a2360de8ca367e
Please enter all the source node IDs.
  Type 'all' to use all the nodes as source nodes for the hash slots.
  Type 'done' once you entered all the source nodes IDs.
Source node #1: b94828e8816574d66b413c6bfa6de130eb14ee66
Source node #2: done
...

确认状态,207不再负责任何槽

代码语言:javascript
复制
127.0.0.1:6380> cluster nodes
3c1b16407c984f33b7c0ff06b8a7bbcc59c1d91b 192.168.0.208:6380@16380 slave 3641ec8359d5400e5540d77600a2360de8ca367e 0 1550231654002 15 connected
b94828e8816574d66b413c6bfa6de130eb14ee66 192.168.0.207:6380@16380 master - 0 1550231657009 12 connected

2.忘记节点 Redis提供了cluster forget {downNodeId}命令实现该功能,当节点收到cluster forget {downNodeId}该命令后会在60秒内将该节点加入到禁用列表,但是到了60秒后又会与节点进行Gossip通信。所以要在60秒内在所有节点上执行该操作,如果节点较多很明显执行起来不方便。好在redis还提供另一个更方便的命令 redis-cli --cluster del-node {host:port} {downNodeId}。显示建议使用redis-cli来做忘记节点操作。对于主从都下线的情况,先下线从节点,再下线主节点,避免不必要的全量复制。

代码语言:javascript
复制
[root@kafka31 data]# redis-cli --cluster del-node 192.168.0.31:6380 3c1b16407c984f33b7c0ff06b8a7bbcc59c1d91b
>>> Removing node 3c1b16407c984f33b7c0ff06b8a7bbcc59c1d91b from cluster 192.168.0.31:6380
>>> Sending CLUSTER FORGET messages to the cluster...
>>> SHUTDOWN the node.
[root@kafka31 data]# redis-cli --cluster del-node 192.168.0.31:6380 b94828e8816574d66b413c6bfa6de130eb14ee66
>>> Removing node b94828e8816574d66b413c6bfa6de130eb14ee66 from cluster 192.168.0.31:6380
>>> Sending CLUSTER FORGET messages to the cluster...
>>> SHUTDOWN the node.

3.确认集群状态

代码语言:javascript
复制
[root@kafka31 data]# redis-cli -p 6380
127.0.0.1:6380> cluster nodes
ed93d5ea74751d7124a2d5830ce0806a0c962d43 192.168.0.32:6380@16380 master - 0 1550232273000 14 connected 5461-6825 6827-10922
3ba3e8323b7b637c958977335bf7f7213c009929 192.168.0.35:6380@16380 slave ed93d5ea74751d7124a2d5830ce0806a0c962d43 0 1550232273000 14 connected
7fbf45fdc4d0780074f8fe324aac28ae686eebaa 192.168.0.34:6380@16380 slave 92fd7c2a7b7b8933d1019e72a852f621f6b4faff 0 1550232273753 13 connected
3641ec8359d5400e5540d77600a2360de8ca367e 192.168.0.33:6380@16380 master - 0 1550232275759 15 connected 6826 10923-16383
a5ac7dfedd81f2ecd9dd101ef8d9d4f70f895bbf 192.168.0.36:6380@16380 slave 3641ec8359d5400e5540d77600a2360de8ca367e 0 1550232274757 15 connected
92fd7c2a7b7b8933d1019e72a852f621f6b4faff 192.168.0.31:6380@16380 myself,master - 0 1550232274000 13 connected 0-5460

至此,集群节点下线完成。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/02/15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档