拉取redis镜像
docker pull redis:6.0.8
启动6个docker容器,名称与端口不可重复
# --cluster-enabled yes #开启redis集群
# --net host #使用宿主机的IP和端口
# --appendonly yes #开启持久化
# --name redis-1 #自定义容器名字
docker run -d --name redis-1 --network host --privileged=true -v /data/redis-1:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6381
docker run -d --name redis-2 --network host --privileged=true -v /data/redis-2:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6382
docker run -d --name redis-3 --network host --privileged=true -v /data/redis-3:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6383
docker run -d --name redis-4 --network host --privileged=true -v /data/redis-4:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6384
docker run -d --name redis-5 --network host --privileged=true -v /data/redis-5:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6385
docker run -d --name redis-6 --network host --privileged=true -v /data/redis-6:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6386
查看容器启动是否成功
构建主从关系
# --cluster-replicas 1 #为每个master创建一个slave节点
#进入redis-1容器
[root@docker_server ~]# docker exec -it redis-1 /bin/bash
[root@docker_server:/data]# redis-cli --cluster create 10.10.10.12:6381 10.10.10.12:6382 10.10.10.12:6383 10.10.10.12:6384 10.10.10.12:6385 10.10.10.13:6386 --cluster-replicas 1
M为主,S为从
slots:后是分配的固定槽位,当写入数据时会根据默认算法自动写入到对应槽位的集群节点中
查看集群状态
#进入任意节点中
redis-cli -p 6381
#查看集群状态信息
127.0.0.1:6381> cluster info
#查看节点信息
127.0.0.1:6381> cluster nodes
如下图所示,集群关系一一对应