首先要解决的问题是redis镜像的问题,如果因网络问题无法docker pull,就配置国内加速
创建文件
bash
touch /etc/docker/daemon.json
写入内容
bash
{
"registry-mirrors": [
"https://docker.1panel.live",
"https://docker-0.unsee.tech",
"https://docker.1panel.live",
"https://registry.dockermirror.com",
"https://docker.imgdb.de",
"https://docker.m.daocloud.io",
"https://hub.firefly.store",
"https://hub.littlediary.cn",
"https://hub.rat.dev",
"https://dhub.kubesre.xyz",
"https://cjie.eu.org",
"https://docker.kejilion.pro",
"https://docker.1panelproxy.com",
"https://docker.hlmirror.com",
"https://hub.fast360.xyz",
"https://ghcr.io"
]
}
其次就开始准备着手部署redis集群
1、创建redis.conf,每个节点一个文件【redis1.conf,redis2.conf,redis3.conf,redis4.conf,redis5.conf,】,端口不能相同,conf文件内容如下,下方的注释要移除,不要在文件中体现,会报错
bash
port 6379
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
appendfsync everysec
requirepass 123456 #redis密码
masterauth 123456 #redis集群节点认证密码
maxmemory 1gb
maxmemory-policy allkeys-lru
2、创建好配置文件后,创建docker-compose.yml,内容如下,有需要调整的自行调整即可
bash
version: "3.8"
services:
redis-master1:
image: redis:6-alpine
container_name: redis-master1
environment:
- "TZ=Asia/Shanghai"
ports:
- "6379:6379"
- "16379:16379"
volumes:
- ./redis.conf:/usr/local/etc/redis/redis.conf
- ./redis-master1/data:/data
command:
- "redis-server"
- "/usr/local/etc/redis/redis.conf"
redis-master2:
image: redis:6-alpine
container_name: redis-master2
environment:
- "TZ=Asia/Shanghai"
ports:
- "6380:6380"
- "16380:16380"
volumes:
- ./redis1.conf:/usr/local/etc/redis/redis.conf
- ./redis-master2/data:/data
command:
- "redis-server"
- "/usr/local/etc/redis/redis.conf"
redis-master3:
image: redis:6-alpine
container_name: redis-master3
environment:
- "TZ=Asia/Shanghai"
ports:
- "6381:6381"
- "16381:16381"
volumes:
- ./redis2.conf:/usr/local/etc/redis/redis.conf
- ./redis-master3/data:/data
command:
- "redis-server"
- "/usr/local/etc/redis/redis.conf"
redis-slave1:
image: redis:6-alpine
container_name: redis-slave1
environment:
- "TZ=Asia/Shanghai"
ports:
- "6382:6382"
- "16382:16382"
volumes:
- ./redis3.conf:/usr/local/etc/redis/redis.conf
- ./redis-slave1/data:/data
command:
- "redis-server"
- "/usr/local/etc/redis/redis.conf"
redis-slave2:
image: redis:6-alpine
container_name: redis-slave2
environment:
- "TZ=Asia/Shanghai"
ports:
- "6383:6383"
- "16383:16383"
volumes:
- ./redis4.conf:/usr/local/etc/redis/redis.conf
- ./redis-slave2/data:/data
command:
- "redis-server"
- "/usr/local/etc/redis/redis.conf"
redis-slave3:
image: redis:6-alpine
container_name: redis-slave3
environment:
- "TZ=Asia/Shanghai"
ports:
- "6384:6384"
- "16384:16384"
volumes:
- ./redis5.conf:/usr/local/etc/redis/redis.conf
- ./redis-slave3/data:/data
command:
- "redis-server"
- "/usr/local/etc/redis/redis.conf"
3、在docker-compose.yml文件所在文件夹下,同时redis.conf也要在该文件夹下,执行命令
bash
docker-compose up -d
4、执行成功后,进入任意一个容器
bash
docker exec -it redis-master1 sh
5、执行如下命令,创建集群。此处注意,各个节点的ip一定要保证能够在容器内与之通信,否则无法建立集群,如果有需要对网络调整的,在docker-compose.yml进行配置
bash
redis-cli --cluster create 192.168.1.202:6379 192.168.1.202:6380 192.168.1.202:6381 192.168.1.202:6382 192.1681.202:6383 192.168.1.202:6384 --cluster-replicas 1 -a '123456'
6、集群创建成功,开始验证,在集群中的节点中输入命令
bash
redis-cli -h 127.0.0.1 -p 6379
7、输入密码
bash
AUTH default 123456
8、查看集群信息
bash
cluster info
9、输出ok即可