目录
二、进入容器redis-node-1并为6台机器构建集群关系
也可以查看这篇在CentOS上搭建:Redis 集群
- 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. 进入容器
- docker exec -it redis-node-1 /bin/bash
-
- #2. 构建主从关系
- redis-cli --cluster create 192.168.78.133:6381 192.168.78.133:6382 192.168.78.133:6383 192.168.78.133:6384 192.168.78.133:6385 192.168.78.133:6386 --cluster-replicas 1
-
- --cluster-replicas 1 表示为每个master创建一个slave节点,两两配对
3主3从构建成功:
在6381写入数据,有些会报错,这是因为在集群环境中数据自动分配哈希槽导致:
解决办法:加入参数-c,进入集群模式
查看集群信息 cluster check
(1)主机6381和从机切换,先停止主机6381
6381主机停了,对应的从机6386上位
6381作为1号主机分配的从机以实际情况为准,具体是几号机器就是几号
(2)重启6381,变为从机了
(3)停止6386,让6381上位变为master
(4)恢复6368,重新变为从机
以往操作说明,无论那台宕机了,数据都不会消失。