1.创建文件夹
mkdir -p /redis/redis-cluster/redis-01 (redis-02~06)
2.文件夹内分别创建redis.conf文件
#每个节点的端口,我们六个节点端口分别是(6379 6380 6381 6382 6383 6384)
port 6379
#表示打开集群模式
cluster-enabled yes
#节点的配置文件名,启动后会自动生成到你配置文件 dir ./ 命令指定的目录中
cluster-config-file nodes-6379.conf
#设置节点的关联时间(毫秒),超过该时间slave认为master宕机,自动升级
cluster-node-timeout 15000
#集群节点ip
#这个IP需要特别注意一下,如果要对外提供访问功能,需要填写宿主机的IP,如果不填或者填写docker分配的IP,可能会导致部分集群节点在跳转时失败。
#整合springboot时候我们用这个IP 加端口
cluster-announce-ip 182.43.202.xx
3.创建docker-compose.yml在redis-cluster文件夹下:
version: "3.0"
services:
redis-1:
image: redis:latest
container_name: redis-1
ports:
- 6379:6379
- 16379:16379 #集群总线端口 默认就是redis端口加1000,每个节点都要打开
volumes:
- $PWD/redis-1/redis.conf:/redis.conf
- $PWD/redis-1/data:/data
command: redis-server /redis.conf
redis-2:
image: redis:latest
container_name: redis-2
ports:
- 6380:6380
- 16380:16380 #集群总线端口 默认就是redis端口加1000,每个节点都要打开
volumes:
- $PWD/redis-2/redis.conf:/redis.conf
- $PWD/redis-2/data:/data
command: redis-server /redis.conf
redis-3:
image: redis:latest
container_name: redis-3
ports:
- 6381:6381
- 16381:16381 #集群总线端口 默认就是redis端口加1000,每个节点都要打开
volumes:
- $PWD/redis-3/redis.conf:/redis.conf
- $PWD/redis-3/data:/data
command: redis-server /redis.conf
redis-4:
image: redis:latest
container_name: redis-4
ports:
- 6382:6382
- 16382:16382 #集群总线端口 默认就是redis端口加1000,每个节点都要打开
volumes:
- $PWD/redis-4/redis.conf:/redis.conf
- $PWD/redis-4/data:/data
command: redis-server /redis.conf
redis-5:
image: redis:latest
container_name: redis-5
ports:
- 6383:6383
- 16383:16383 #集群总线端口 默认就是redis端口加1000,每个节点都要打开
volumes:
- $PWD/redis-5/redis.conf:/redis.conf
- $PWD/redis-5/data:/data
command: redis-server /redis.conf
redis-6:
image: redis:latest
container_name: redis-6
ports:
- 6384:6384
- 16384:16384
volumes:
- $PWD/redis-6/redis.conf:/redis.conf
- $PWD/redis-6/data:/data
command: redis-server /redis.conf
4.docker-compose up启动 并打开阿里云安全组和防火墙 (包括6379 | 16379等)
5.执行集群命令
docker exec -it a986 redis-cli --cluster create --cluster-replicas 1 182.43.202.28:6379 182.43.202.28:6380 182.43.202.28:6381 182.43.202.28:6382 182.43.202.28:6383 182.43.202.28:6384