十一、Docker 中redis集群扩容、缩容

导读:本篇文章讲解 十一、Docker 中redis集群扩容、缩容,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

接上篇redis集群3主3从搭建,如果您没看过,建议先看下:https://blog.csdn.net/u011837804/article/details/128321703

适逢双十一等大型活动流量爆增时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集群扩容、缩容

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/84249.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!