redis5.0.9集群扩容与缩容(新增节点和减少节点)

一、前提

基于上一章redis5.0.9集群搭建
本章内容介绍如何将2个节点添加到现有的集群环境中,然后再减少节点恢复成原来的环境。
当前的集群情况为三主三从,如图:
在这里插入图片描述

二、添加新节点到集群

启动新节点,配置与前章配置一致

src/redis-server redis.conf

添加新节点到集群当中,第一个ip:port 为当前新增的节点主机和端口信息,后面的ip:port为当前集群中存活的一台主机端口信息

src/redis‐cli ‐a 123456 ‐‐cluster add‐node 192.168.59.103:6379 192.168.59.100:6379

出现如图
在这里插入图片描述
然后进入客户端,输入cluster nodes 查看当前集群节点信息,如图,能看到192.168.59.103:6379的节点以及添加进来并且是一个主节点了,但是当前还没有分配槽位,所以我们还需要给这个节点分配槽位

src/redis-cli -c -a 123456 -h 192.168.59.100 -p 6379
cluster nodes

在这里插入图片描述

三、分配槽位

给新节点分配slot槽位,ip:port 为当前集群中的某一任意节点

src/redis‐cli ‐a 123456 ‐‐cluster reshard 192.168.59.100:6379

大概会出现如下需要填写的信息

# 要分配的槽位数
How many slots do you want to move (from 1 to 16384)? 4000

# 分配到新的节点的ID,id就是cluster nodes命令得到的每一个节点信息列表最前面那一串东西
What is the receiving node ID? 2cad271da0c87eac5d6965b59cd07cfd47b4351d

# 输入 all 代表从现有的各个master中抽取出4000个槽位给点新节点
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:all

... ... 

# 确认分配 yes
Do you want to proceed with the proposed reshard plan (yes/no)? yes 

然后cluster nodes查看节点信息,如图,可以看到刚刚新增的103节点分配了4000个槽位在这里插入图片描述

四、为新节点添加从节点

接下来为刚刚新增的103节点添加一个从节点,下面的192.168.59.103:6380的一个新的redis节点,添加到集群中

src/redis‐cli ‐a 123456 ‐‐cluster add‐node 192.168.59.103:6380 192.168.59.100:6379

查看节点信息,可以看到新的节点也是一个master节点,所以要把它指定为上面6379节点的从节点
在这里插入图片描述
连接新节点(6080)的客户端

src/redis-cli -a 123456 -c -h 192.168.59.103 -p 6380

指定为192.168.59.103:6379节点的从节点

cluster replicate 2cad271da0c87eac5d6965b59cd07cfd47b4351d

看到如图,ok了
在这里插入图片描述

五、删除节点

把刚刚添加的192.168.59.103::6379(master)和192.168.59.103::6380(slave)从集群重移除,并把已分配的槽位移动到另外一个主节点192.168.59.100:6379上。
先删除从节点 ip:port 为需要删除的节点的信息,最后一串是它对应的ID

src/redis-cli -a 123456 --cluster del-node 192.168.59.103:6380 0d8230fce485264665fc483b412c30b3f9c81bb1

在这里插入图片描述
可以看到已经没有了刚才的节点
在这里插入图片描述
最后删除主节点192.168.59.103::6379,在此之前要把槽位分配到某一个主节点上,这里放到192.168.59.100.6379主节点。
ip端口为集群中任意一个存活节点

src/redis-cli -a 123456 --cluster reshard 192.168.59.100:6379
# 需要移除多少槽位,这里的槽位=所需要删除的节点的所占槽位
How many slots do you want to move (from 1 to 16384)? 4000
# 分配到哪个节点,值为节点id
What is the receiving node ID? d1d52cce852a949eb6173620f2ed1e44b6cf9e1f

# source node 为 192.168.59.103::6379 的id
  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: 2cad271da0c87eac5d6965b59cd07cfd47b4351d
# 输入done执行生成计划,
Source node 2:done

# 执行 yes,结束
Do you want to proceed with the proposed reshard plan (yes/no)? Yes

可以看到192.168.59.103:6379已经没有槽位了
在这里插入图片描述
最后安全删除即可

src/redis-cli -a 123456 --cluster del-node 192.168.59.103:6379 2cad271da0c87eac5d6965b59cd07cfd47b4351d

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值