docker中redis集群的主从扩容缩容:

142 阅读2分钟

redis集群主从扩容缩容: 原有集群 三主三从 1>>>4 2>>>5 3>>>6 docker中如何创建redis集群请参考我的另一篇文章 主从扩容:

  • 启动redis 准备扩容的服务器服务器
    docker run -d --name redis-node-7 --net host --privileged=true -v /data/redis/share/redis-node-7:/data redis --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 --cluster-enabled yes --appendonly yes --port 6388

image.png

  • 将redis服务器添加到集群   命令:redis-cli --cluster add-node 121.36.254.199:6387 121.36.254.199:6381 添加地址 已经存在的集群
  • 查看是否添加成功               命令:redis-cli --cluster check 121.36.254.199:6381  
  • 给集群新加的服务器分派槽位  命令:redis-cli --cluster reshard 121.36.254.199:6381(已经存在的集群)
  • 分派槽位时会让你输入 需要分配的槽位数量   需要分配槽位的节点id编号   选择 all
  • 查看是否添加成功 
  • 给新加的主服务器配置从服务器(新加从服务器指定刚刚 新加入集群的服务器为主服务器)
  • 命令redis-cli --cluster add-node 121.36.254.199:6388 121.36.254.199:6387 --cluster-slave --cluster-master-id e4781f644d4a4e4d4b4d107157b9ba8144631451-------这个是6387的编号,按照自己实际情况  新master主机端口
  • 查看是否添加成功 

下面是实操命令:

Image.png

然后执行 redis-cli --cluster reshard 121.36.254.199:6381      分派槽位时会让你输入 需要分配的槽位数量   需要分配槽位的节点id编号   选择 all

然后就被刷屏啦!!!抱歉没截到图(可参考下面缩容分配槽位界面) Image.png

重新分配后的槽位结果请注意:

槽位是由每个服务器匀部分槽位给新的服务器,这里如果重新分配的话成本太高,所以解约了成本

Image.png

下一步添加从服务器

Image.png 查看是否成功

Image.png

主从缩容:

  • 先删除从节点  命令 redis-cli --cluster del-node  121.36.254.199:6388 +节点id

  • 删除主服务器节点之前先重新分配槽位 redis-cli --cluster reshard 121.36.254.199:6381下面他会让你输入  槽位数量 以两个为例 4096/2 就是2048 然后输入接收的服务器节点id 和 删除槽位的服务器节点id 然后输入done

  • 查看集群信息 redis-cli --cluster check

  • 删除主节点  命令参考 第一步

下面是实操命令:

删除从节点并查看集群信息

Image.png

重新分配准备删除(6387)的主服务器的槽位

Image.png

再继续分配一次,分配之前查看一下集群信息

Image.png

再继续分配一次

Image.png

最后执行 参考第一步

删除6387端口

查看集群状态完成缩容

Image.png