docker部署的redis集群 添加节点(扩容)

上篇博文完成了在 docker 中部署 redis 多主多从集群:点这里

这篇博文说一下如何在集群基础上继续添加节点,也就是给集群扩容

博文中的命令出现的 111.111.111.111 均换成实际 IP 执行

创建要添加的一主一从容器

这里创建一个6377主节点和一个6378从节点

docker run -d --name redis-node7 --net host --privileged=true -v /usr/local/redis/node7:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6377
docker run -d --name redis-node8 --net host --privileged=true -v /usr/local/redis/node8:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6378

然后别忘记打开这两个端口和对应的16377 16378通信端口 

将新增的6377作为 master 节点加入集群

进入6377节点

docker exec -it redis-node7 /bin/bash

 执行添加命令

redis-cli --cluster add-node 111.111.111.111:6377 111.111.111.111:6374

意思是把6377添加到6374领头的主节点集群,执行之后出现一大段内容,有下图内容表示添加成功

检查集群情况,可以发现已经有6377主节点了,但是还没有分配槽位(下图第四行中 0 slots | 0 slaves)

redis-cli --cluster check 111.111.111.111:6371

集群重新分配槽位

执行重新分配槽位命令(目前还是在6377容器里面,在其他节点执行也是没问题的 )

redis-cli --cluster reshard 111.111.111.111:6371

执行之后会出现下图内容,问你1到16384分配多少,这里因为是4个主节点 所以直接使用16384除以4得到4096,输入4096回车

然后又会问你节点的ID,这里一定要输入上图红框位置的6377节点的ID(肯定跟我图上的不一样,填你实际的ID)。填完之后又会问你是处理单个节点还是所有节点,这里输入all 回车

开始分配后,中途会再询问你一次,是否继续执行重新分配计划,输入yes回车。等他继续分配完成。再次使用check命令查看集群情况

可以看到四个主节点都是4096个槽位,但并不是重新分成四份分配的,而是在原来三个节点槽位中挨个分了一部分(大概1364个)给新节点。

因为之前节点已经存有数据了,如果重新分配成本太高,所以就采用这种形式 

给6377节点挂一个6378从节点

redis-cli --cluster add-node 111.111.111.111:6378 111.111.111.111:6377 --cluster-slave --cluster-master-id fdb615eb6c86ec8246739112b6cc89679b37f58b

命令最后的id是6377主节点的节点id,也就是上一步分配槽位时填的那个id

再次使用check命令查看,可以看到已经是4主4从了

到此就完成了从原来的3主3从集群扩容到4主4从集群 

有扩容就有缩容,下篇博文完成删除节点 缩容操作:点这里

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿演

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值