Docker 中redis集群扩容、缩容

内容分享1天前发布
0 1 0

适逢双十一等大型活动流量爆增时redis集群扛不住了,这个时候怎么办呢,不能说把redis停了,我再搭建一个5主5从集群吧,这个时候就需要用到redis自动扩容。

1、redis集群设计

Docker 中redis集群扩容、缩容

redis官网有这么一段话,大致意思是 redis集群设计了16384个槽位,然后针对每个集群主节点,需要分配一些或者一个槽位,这样一来,最大就是可以有16384个集群主节点(一个槽位一个节点),但是由于redis集群超过1000个节点后,速度会变慢,所以就提议最大1000个集群主节点。

注意:这里说的是主节点

接上篇3主3配置,我们可以看到redis将16384个槽位平均分配到3个主节点

Docker 中redis集群扩容、缩容

说到这里,大家知道怎么集群怎么扩容了吗,那就是将槽位再分配下呗。

2、新建6387、6388两个Redis容器节点

涉及命令:

docker run -d --name redis-node-7 --net host --privileged=true -v /usr/local/tool/volumn/redis/node-7:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6387;

docker run -d --name redis-node-8 --net host --privileged=true -v /usr/local/tool/volumn/redis/node-8:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6388;

命令选项这里就不说了,不懂的看下上篇

实例:

Docker 中redis集群扩容、缩容

3、将新增的6387节点(空槽位)作为master节点加入原集群

进入任意节点(非6387、6388),执行命令

涉及命令:

#命令格式: redis-cli --cluster add-node 要新增的节点IP:Port 当前进入的节点IP:Port
redis-cli --cluster add-node 192.168.13.61:6387 192.168.13.61:6381

实例:

Docker 中redis集群扩容、缩容

4、检查集群情况第1次

涉及命令:

redis-cli --cluster check 192.168.13.61:6381

实例:

Docker 中redis集群扩容、缩容

5、重新分派槽位

进入任意节点(非6388),执行命令

涉及命令:

redis-cli --cluster reshard 192.168.13.61:6381

实例:

Docker 中redis集群扩容、缩容

Docker 中redis集群扩容、缩容

Docker 中redis集群扩容、缩容

选择yes即可执行槽位重新分配

6、检查集群情况第2次

执行命令同4

实例:

Docker 中redis集群扩容、缩容

7、为主节点6387分配从节点6388

涉及命令:

#格式 redis-cli --cluster add-node ip:新slave端口 ip:新master端口 --cluster-slave --cluster-master-id 新主机节点ID 
#新主机节点ID 可以通过redis-cli --cluster check 192.168.13.61:6381 查到
redis-cli --cluster add-node 192.168.13.61:6388 192.168.13.61:6387 --cluster-slave --cluster-master-id 351512dc4c50f36ac3ac9f3e334094e69fbef59f

实例:

Docker 中redis集群扩容、缩容

8、检查集群情况第3次

执行命令同4

实例:

Docker 中redis集群扩容、缩容

至此,redis扩容就实现了,轻松愉快的扛过活动,活动过后是不是得缩回3主3从呢?

9、删除6387从节点

进入任意节点(非6387),执行命令

涉及命令:

#格式  redis-cli --cluster del-node ip:端口  节点ID 
redis-cli --cluster del-node 192.168.13.61:6388 d106683d0f11ca8f294133dbd696f41fc85f2cde

注意:必须先删除从节点,否则报错(主节点槽位需要被分配其他主节点后才可以删除)

Docker 中redis集群扩容、缩容

实例:

Docker 中redis集群扩容、缩容

10、将6387主节点槽位分给其他主节点

进入任意节点,执行命令

涉及命令:

#192.168.13.61:6381 可以为任意节点IP:Port
redis-cli --cluster reshard 192.168.13.61:6381

Docker 中redis集群扩容、缩容

11、删除6387节点

Docker 中redis集群扩容、缩容

涉及命令:

redis-cli --cluster del-node 192.168.13.61:6387 351512dc4c50f36ac3ac9f3e334094e69fbef59f

实例:

Docker 中redis集群扩容、缩容

© 版权声明

相关文章

1 条评论

  • 头像
    铝单板幕墙 读者

    收藏了,感谢分享

    无记录
    回复