docker 搭建redis三主三从及扩缩容4主4从实战

Posted _大木_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker 搭建redis三主三从及扩缩容4主4从实战相关的知识,希望对你有一定的参考价值。

文章目录

三主三从搭建

1. 拉镜像 redis:6.0.8

docker pull redis:6.0.8

2. 生产6个实例

  • docker run -d --name redis-node-1 --net host --privileged=true -v D:\\Users\\damu\\docker_all_conf/redis/share/redis-node-1:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6381
  • docker run -d --name redis-node-2 --net host --privileged=true -v D:\\Users\\damu\\docker_all_conf/redis/share/redis-node-2:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6382
  • docker run -d --name redis-node-3 --net host --privileged=true -v D:\\Users\\damu\\docker_all_conf/redis/share/redis-node-3:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6383
  • docker run -d --name redis-node-4 --net host --privileged=true -v D:\\Users\\damu\\docker_all_conf/redis/share/redis-node-4:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6384
  • docker run -d --name redis-node-5 --net host --privileged=true -v D:\\Users\\damu\\docker_all_conf/redis/share/redis-node-5:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6385
  • docker run -d --name redis-node-6 --net host --privileged=true -v D:\\Users\\damu\\docker_all_conf/redis/share/redis-node-6:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6386

3. 进入任意一台机器: 以node1为例

docker exec -it redis-node-1 bash
执行配置命令(记得修改ip):
redis-cli --cluster create 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385 127.0.0.1:6386 --cluster-replicas 1

4. 查看集群状态

redis-cli -p 6381

PS 1. 采用集群方式连接 -c

redis-cli -p 6381 -c

PS 2. 查看集群信息

redis-cli --cluster check 127.0.0.1:6381

扩容为四主四从

1. 再生产2个实例

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

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

  • 进入6387节点
    docker exec -it redis-node-7 bash
  • 加入redis集群
    redis-cli --cluster add-node 127.0.0.1:6387 127.0.0.1:6381
ps: 
redis-cli --cluster add-node 自己实际IP地址:6387 自己实际IP地址:6381
6387 就是将要作为master新增节点
6381 就是原来集群节点里面的领路人,相当于6387拜拜6381的码头从而找到组织加入集群

3. 检查集群情况并且给新机器重新分配slot槽节点

  • redis-cli --cluster check 127.0.0.1:6381

  • redis-cli --cluster reshard 127.0.0.1:6381

  • 再次检查集群状况 redis-cli --cluster check 127.0.0.1:6381

4. 为新的master节点添加从节点6388

redis-cli --cluster add-node 127.0.0.1:6388 127.0.0.1:6387 --cluster-slave --cluster-master-id 41f6e15f35e3226ffb41ffb27a83e624c71da933

  • 检查集群状况

再缩容为三主三从 (删除1-主和5-从)

1. 任意进入一台机器,删除从节点 6385

redis-cli --cluster del-node 127.0.0.1:6385 241fe01f01ae5515fff71e17b2c7f9e4a4698a2e

2. 分配1节点上的slot槽节点给7 (其他分配也行,all是AA)

  • redis-cli --cluster reshard 127.0.0.1:6381

  • 接受slot 的node节点:41f6e15f35e3226ffb41ffb27a83e624c71da933

  • 清除slot 的node节点:49663ab523f4a0802589343525a63926ebf1458d

3. 从集群中删除node-1 节点,并检查集群状况

redis-cli --cluster del-node 127.0.0.1:6381 49663ab523f4a0802589343525a63926ebf1458d

以上是关于docker 搭建redis三主三从及扩缩容4主4从实战的主要内容,如果未能解决你的问题,请参考以下文章

docker 搭建redis三主三从及扩缩容4主4从实战

Docker 实践经验docker上部署 redis 三主三从集群

docker搭建redis集群(三主三从)

Docker 学习笔记总结

Docker 学习笔记总结

Centos7 单机搭建redis集群(三主三从)