docker redis集群(多机,一主二从,由一主一从升级的)
在docker redis集群(一主一从) https://www.cnblogs.com/leihongnu/p/16434040.html 的基础上
分别在3台虚拟机上添加redis7、redis8、redis9
环境
ip 容器名
192.168.59.102:redis1、redis4、redis7
192.168.59.103:redis2、redis5、redis8
192.168.59.104:redis3、redis6、redis9
192.168.59.102
注意:密码 --requirepass 和 --masterauth必须一样
# mkdir -p /home/redis/node7/data
#docker create --name redis7 --network=host -v /home/redis/node7/data:/data redis --bind 192.168.59.102 --cluster-enabled yes --cluster-config-file redis-node7.conf --port 6007
192.168.59.103
# mkdir -p /home/redis/node8/data
#docker create --name redis8 --network=host -v /home/redis/node8/data:/data redis --bind 192.168.59.102 --cluster-enabled yes --cluster-config-file redis-node8.conf --port 6008
192.168.59.104
# mkdir -p /home/redis/node9/data
docker create --name redis9 --network=host -v /home/redis/node9/data:/data redis --bind 192.168.59.104 --cluster-enabled yes --cluster-config-file redis-node9.conf --port 6009
容器的规划,如下图
进入任意一个容器
注意:redis-cli --cluster add-node 从节点:端口 主节点:端口 --cluster-slave。添加从节点前,查看当前节点状态:CLUSTER nodes,确定主节点
将redis7加入redis2为从节点
redis-cli --cluster add-node 192.168.59.102:6007 192.168.59.103:6379 --cluster-slave
将redis8加入redis3为从节点
redis-cli --cluster add-node 192.168.59.103:6008 192.168.59.104:6379 --cluster-slave
将redis9加入redis1为从节点
redis-cli --cluster add-node 192.168.59.104:6009 192.168.59.102:6379 --cluster-slave
验证:
关闭192.168.59.102:redis1、redis4、redis7 与 192.168.59.103:redis2、redis5、redis8,即模拟服务器挂掉2台
集群正常,因为,主实例挂掉,从实例会升级成为新的主实例,剩下的192.168.59.104集群节点中都有一个主实例在运行
结果:一主二从分别在3台服务器的情况,挂掉2台服务器,集群依旧正常运行