docker安装redis主从集群

1.创建集群
docker run -d --name redis-node-1 --net host --privileged=true -v /data/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 /data/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 /data/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 /data/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 /data/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 /data/redis/share/redis-node-6:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6386
  1. --net host       使用宿主机的IP和端口,默认
  2. -v /data/redis/share/redis-node-6:/data        容器卷,宿主机地址:docker内部地址
  3. --cluster-enabled yes       开启redis集群
  4. --appendonly yes      开启持久化进入容器redis-node-1并为6台机器构建集群关系

2.构建集群关系

进入容器redis-node-1并为6台机器构建集群关系        docker exec -it redis-node-1 /bin/bash

构建主从关系

redis-cli --cluster create 192.168.127.140:6381 192.168.127.140:6382 192.168.127.140:6383 192.168.127.140:6384 192.168.127.140:6385 192.168.127.140:6386 --cluster-replicas 1

--cluster-replicas 1 表示为每个master创建一个slave节点

链接进入6381作为切入点,查看集群状态

redis-cli -p 6381

cluster info

cluster nodes

3. 数据读写存储

加入参数-c,优化路由

 查看集群信息

redis-cli --cluster check 192.168.127.140:6381

4. 容错切换迁移

6381master   6385 slave

主机6381和从机切换,先停止主机6381           docker stop redis-node-1

6381主机宕机了,6385从机上位

 6381恢复后身份变为slave(反客为主)

还原原来的三主三从
docker start redis-node-1
docker stop redis-node-5
docker start redis-node-5

5.主从扩容

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

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

docker ps

进入6387容器实例,将6387节点(空槽号)作为master节点加入集群

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

redis-cli --cluster add-node 192.168.127.140:6387 192.168.127.140:6381

 查看集群情况

 重新分派槽号

redis-cli --cluster reshard 192.168.127.140:6381

 再次查看集群状态,以重新分配,从3个master均分过来

 为master6387分配slave6388

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

redis-cli --cluster add-node 192.168.127.140:6388 192.168.127.140:6387 --cluster-slave --cluster-master-id eb84e2925f5b4a0cf28add7b6f027b3302bd6249

 最后再次查看集群状态

6. 主从缩容

删除slave          redis-cli --cluster del-node ip:从机端口 从机节点ID

redis-cli --cluster del-node 192.168.127.140:6388 08b5c1df97337ce5a9378d14282ff7469b3983c4

删除master时,需要将slot槽重新分配,再删除当前节点

此处都分配给6381,均分输入多个master节点

 查看集群状态

 删除master

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值