docker版redis-cluster模式集群-主从扩容

  3主3从节点在上篇:docker版redis-cluster模式集群搭建(3主3从)

1、新建6387、6388两个节点

docker run -d --name redis-node-7 --net host --privileged=true -v /data/redis/share/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 /data/redis/share/redis-node-8:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6388

2、进入6387容器实例内部

docker exec -it redis-node-7 /bin/bash

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

redis-cli --cluster add-node 宿主机ip:6387 宿主机ip:6381

  6387 就是将要作为master新增节点
  6381 就是原来集群节点里面的领路人

4、检查集群情况

redis-cli --cluster check 宿主机ip:6381

 

 

 

5、重新分派槽号

  从上图集群节点信息可以看出,6387节点没有分配哈希槽,因为之前3台Master已经分完了16384个哈希槽。我们重新分配哈希槽,让6387分配到一定的哈希槽,重新分配后,还要考虑之前的Redis节点数据迁移。

  本例采用平均分配方式,16384/4=4096

  输入完命令后会问你三个问题:
    a.每个分配多少个槽位:4个主节点,AA分配,16384/4=4096
    b.分配给节点的ID:此处6387节点的ID
    c.从哪个节点分配给6387:此处all

redis-cli --cluster reshard IP地址:端口号

6、检查集群情况第2次

 

 

为什么6387是3个新的区间,以前的还是连续?
重新分配成本太高,所以前3家各自匀出来一部分,从6381/6382/6383三个旧节点分别匀出1364个坑位给新节点6387

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

redis-cli --cluster add-node ip:新slave端口 ip:新master端口 --cluster-slave --cluster-master-id 新主机节点ID

 

 

 8、检查集群情况第3次

 

 

 4主4从完成。

缩容可看下篇:docker版redis-cluster模式集群-主从缩容

posted @ 2022-09-30 15:18  秦言  阅读(144)  评论(0编辑  收藏  举报