首页 > 其他 > 详细

Redis cluster集群维护之扩容

时间:2021-05-16 22:15:00      阅读:29      评论:0      收藏:0      [点我收藏+]
Redis cluster集群节点维护

集群运行时间长久之后,难免由于硬件故障、网络规划、业务增长等原因对已有集群进行相应的调整, 比如增加Redis node节点、减少节点、节点迁移、更换服务器等。

增加节点和删除节点会涉及到已有的槽位重新分配及数据迁移。

1、集群维护之动态扩容

2、集群维护之动态缩容

动态扩容:

业务发展迅猛,现有的三主三从的redis cluster架构可能无法满足现有业务的并发写入需求,紧急采购两台服务器,需要将其动态添加到集群当中,但不能影响业务使用和数据丢失。

在已经做好的redis cluster架构上在加2台,增加Redis node节点,要与之前的Redis node版本相同、配置一致,分别再启动两台Redis node,应为一主一从。

我就用两台新的主机分别是redis-node7,10.0.0.168和redis-node8,10.0.0.169

node7和node8都要安装配置好redis,启动redis服务

技术分享图片 技术分享图片

添加这2个节点到集群

命令添加新节点,要添加的新redis节点IP和端口添加到的已有的集群中任意节点的IP:端口

add-node   new_host:new_port    existing_host:existing_port

##new_host:new_port #为新添加的主机的IP和端口

##existing_host:existing_port #为已有的集群中任意节点的IP和端口

技术分享图片 技术分享图片

一样的操作,再把10.0.0.169加入集群就可以了

技术分享图片

 

新的node节点加到集群之后默认是master节点,但是10.0.0.168和10.0.0.169没有slots数据,需要重新分配

添加主机之后需要对添加至集群种的新主机重新分片否则其没有分片也就无法写入数据

技术分享图片

 

重新分配槽位

技术分享图片

 

在分配的过程中的几个选项:

How many slots do you want to move (from 1 to 16384)?  4096 #   分配多少个槽位=16384/master个数

What is the receiving node ID?   #需要输入10.0.0.168的ID 

Source node #1: all #将哪些源主机的槽位分配给新的节点,all是自动在所有的redis node选择划分,如果是从redis cluster删除某个主机可以使用此方式将指定主机上的槽位全部移动到别的redis主机

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

技术分享图片

 

一致的操作,再把10.0.0.169分配好slots

技术分享图片

 

技术分享图片

 

 技术分享图片

 

目前两个新的节点10.0.0.168,和10.0.0.169都已经加入集群了,为新的master添加slave节点

有2个方案:

1.在新加节点到集群时,直接将之设置为slave

直接命令行加为slave节点

redis-cli  -a  123456  --cluster add-node 10.0.0.169:6379  10.0.0.162:6379   --cluster-slave   --cluster-master-id  id

2.先将新节点加入集群,再修改为slave

手动将其指定为某个master的slave,否则其默认角色为master

设置slave,命令格式为cluster replicate MASTERID

需要登录到从节点10.0.0.169的redis-cli,使用replicate为该节点指定主节点10.0.0.168

 

技术分享图片

 

但是却报错显示:(error) ERR To set a master the node must be empty and without assigned slots

错误是不能为一个非空并且分配了slot的主节点继续添加从节点

技术分享图片

 

 解决办法:将主从节点置空并且清除为其指定的slots,两个都得清空。

技术分享图片

 

然后进入10.0.0.169redis-cli重新执行 CLUSTER REPLICATE  ID 可以成功。

技术分享图片

 

最后查看新加入的master10.0.0.168和slave10.0.0.169的节点信息

技术分享图片

 

 技术分享图片

 

Redis cluster集群维护之扩容

原文:https://www.cnblogs.com/liuyakai/p/14774417.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!