开放端口:
开放Redis服务的两个TCP端口。譬如Redis客户端连接端口为6379,而Redis服务在集群中还有一个叫集群总线端口,其端口为客户端连接端口加上10000,即 6379 + 10000 = 16379。两个端口都要开放。
1、新建6个docker容器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
命令释义:
--net host: 使用宿主机的IP和端口,默认
--privileged=true: 获取宿主机root用户权限
-v /data/redis/share/redis-node-1:/data:容器卷,宿主机地址:docker内部地址
--cluster-enabled yes: 开启redis集群
--appendonly yes: 开启持久化
2、进入容器redis-node-1并为6台机器构建集群关系
docker exec -it redis-node-1 /bin/bash redis-cli --cluster create 宿主机ip:6381 宿主机ip:6382 宿主机ip:6383 宿主机ip:6384 宿主机ip:6385 宿主机ip:6386 --cluster-replicas 1
--cluster-replicas 1 表示为每个master创建一个slave节点
3、查看集群状态
4、集群链接方式,加参数:-c
redis-cli -p 6381 -c
5、查看集群信息
redis-cli --cluster check 宿主机ip:6381
6、如有一台主服务器a宕机,其从服务器b会自动变为主服务器代替它。
如果恢复宕机服务器a后想再让其作为之前b的主服务器,则1.开启a;2.关闭b;3.开启b。
扩容节点可看下篇:docker版redis-cluster模式集群-主从扩容