主从扩容案例(三主三从到四主四从)

1、新建6387、6388两个节点+新建后启动+查看是否8节点

docker run -d -name redis-node-7 -net host --privileged=true        -v /datalredis/sharelredis-node-7:1data redis:6.0.8 -cluster-enabled yes        --appendonly yes -port 6387
docker run -d -name redis-node-8 -net host --privileged=true        -v /dataredis/sharelredis-node-8:/data redis.6.0.8 -cluster-enabled yes        --appendonly yes -port 6388
docker ps

Docker Redis集群动态扩容实战步骤

执行命令,加入7、8

Docker Redis集群动态扩容实战步骤


2、进入6387容器实例内部

执行

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


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

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

redis-cli --cluster add-node 自己实际IP地址:6387自己实际IP地址:6381

(6387为master新增节点,6381就是原来集群节点里面的领路人,相当于6387对接6381的码头从而找到组织加入集群)

Docker Redis集群动态扩容实战步骤

 Docker Redis集群动态扩容实战步骤


4、检查集群情况第1次

redis-cli --cluster check 真实ip地址:6381

Docker Redis集群动态扩容实战步骤


5、重新分派槽号

命令:

redis-cli --cluster reshard IP地址:端口号
(redis-cli --cluster reshard 192.168.111.147:6381)

(自己的自己查看)

Docker Redis集群动态扩容实战步骤

Docker Redis集群动态扩容实战步骤


6、检查集群情况第2次

redis-cli --cluster check 真实ip地址l:6381

Docker Redis集群动态扩容实战步骤

Docker Redis集群动态扩容实战步骤

显示:槽号是前3家各自匀出来一部分

槽号分派说明:为什么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
redis-cli --cluster add-node 192.168.111.147:6388        
192.168.111.147:6387 --cluster-slave        --cluster-master-ide4781f644d4a4e4d4b4d107157b9ba8144631451

(这个是6387的编号,按照自己实际情况)

Docker Redis集群动态扩容实战步骤


8、检查集群情况第3次

redis-cli --cluster check 192.168.111.147:6382

Docker Redis集群动态扩容实战步骤

不一定6382,只要是可用的主节点就可以,看个人习惯。

Docker Redis集群动态扩容实战步骤

Docker Redis集群动态扩容实战步骤

 六主六从。

点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)