一.准备工作
拉取redis镜像
运行如下命令:
docker pull redis
查看镜像情况:

安装docker compose(自行查阅安装教程)
Docker Compose 是一个工具,用于定义和运行多容器 Docker 应用程序。它通过 YAML 文件来配置应用的服务,使得用户可以轻松地管理和部署多个 Docker 容器。Docker Compose 是处理多容器应用的强大工具,简化了开发、测试和生产环境的管理。它通过清晰的配置文件和简单的命令,使得容器化应用的部署变得更加高效和一致。
二、部署redis集群
创建文件目录和所需文件
在/home/redis-cluster目录下创建如下目录结构:
├── docker-compose.yml
├── redis-6371
│ ├── conf
│ │ └── redis.conf
│ └── data
├── redis-6372
│ ├── conf
│ │ └── redis.conf
│ └── data
├── redis-6373
│ ├── conf
│ │ └── redis.conf
│ └── data
├── redis-6374
│ ├── conf
│ │ └── redis.conf
│ └── data
├── redis-6375
│ ├── conf
│ │ └── redis.conf
│ └── data
└── redis-6376
├── conf
│ └── redis.conf
└── data
创建以上目录结构命令:
如果目录尚不存在,你可能需要先创建 /home/redis-cluster 目录,或者直接执行以下命令。示例:
sudo mkdir -p /home/redis-cluster
sudo mkdir -p /home/redis-cluster/{redis-{6371..6376}/{conf,data},docker-compose.yml} && sudo touch /home/redis-cluster/redis-{6371..6376}/conf/redis.conf
在 /home/redis-cluster 目录下使用如下命令查看目录结构:
ls -R

redis.conf 配置文件
配置redis-6371的redis.conf文件:
切换到以下路径:/home/redis-cluster/redis-6371/conf
cd /home/redis-cluster/redis-6371/conf
编辑redis.conf文件
vi redis.conf
添加如下内容:
port 6371
cluster-enabled yes
cluster-config-file nodes-6371.conf
cluster-node-timeout 5000
appendonly yes
protected-mode no
requirepass 1234
masterauth 1234
cluster-announce-ip redis-6371
cluster-announce-port 6371
cluster-announce-bus-port 16371
配置redis-6372的redis.conf文件:
切换到以下路径:/home/redis-cluster/redis-6372/conf
cd /home/redis-cluster/redis-6372/conf
编辑redis.conf文件
vi redis.conf
添加如下内容:
port 6372
cluster-enabled yes
cluster-config-file nodes-6372.conf
cluster-node-timeout 5000
appendonly yes
protected-mode no
requirepass 1234
masterauth 1234
cluster-announce-ip redis-6372
cluster-announce-port 6372
cluster-announce-bus-port 16372
配置redis-6373的redis.conf文件:
切换到以下路径:/home/redis-cluster/redis-6373/conf
cd /home/redis-cluster/redis-6373/conf
编辑redis.conf文件
vi redis.conf
添加如下内容:
port 6373
cluster-enabled yes
cluster-config-file nodes-6373.conf
cluster-node-timeout 5000
appendonly yes
protected-mode no
requirepass 1234
masterauth 1234
cluster-announce-ip redis-6373
cluster-announce-port 6373
cluster-announce-bus-port 16373
配置redis-6374的redis.conf文件:
切换到以下路径:/home/redis-cluster/redis-6374/conf
cd /home/redis-cluster/redis-6374/conf
编辑redis.conf文件
vi redis.conf
添加如下内容:
port 6374
cluster-enabled yes
cluster-config-file nodes-6374.conf
cluster-node-timeout 5000
appendonly yes
protected-mode no
requirepass 1234
masterauth 1234
cluster-announce-ip redis-6374
cluster-announce-port 6374
cluster-announce-bus-port 16374
配置redis-6375的redis.conf文件:
切换到以下路径:/home/redis-cluster/redis-6375/conf
cd /home/redis-cluster/redis-6375/conf
编辑redis.conf文件
vi redis.conf
添加如下内容:
port 6375
cluster-enabled yes
cluster-config-file nodes-6375.conf
cluster-node-timeout 5000
appendonly yes
protected-mode no
requirepass 1234
masterauth 1234
cluster-announce-ip redis-6375
cluster-announce-port 6375
cluster-announce-bus-port 16375
配置redis-6376的redis.conf文件:
切换到以下路径:/home/redis-cluster/redis-6376/conf
cd /home/redis-cluster/redis-6376/conf
编辑redis.conf文件
vi redis.conf
添加如下内容:
port 6376
cluster-enabled yes
cluster-config-file nodes-6376.conf
cluster-node-timeout 5000
appendonly yes
protected-mode no
requirepass 1234
masterauth 1234
cluster-announce-ip redis-6376
cluster-announce-port 6376
cluster-announce-bus-port 16376
docker-compose 配置文件
切换目录到:/home/redis-cluster
cd /home/redis-cluster
编辑docker-compose.yml文件:
vi docker-compose.yml
添加如下内容:
version: '3.8'
services:
redis-6371:
image: redis:latest
container_name: redis-6371
ports:
- "6371:6371"
command: ["redis-server", "--cluster-enabled", "yes", "--cluster-config-file", "/data/nodes-6371.conf", "--cluster-node-timeout", "5000", "--appendonly", "yes", "--requirepass", "1234", "--protected-mode", "no"]
volumes:
- redis-data-6371:/data
networks:
- redis-cluster
redis-6372:
image: redis:latest
container_name: redis-6372
ports:
- "6372:6372"
command: ["redis-server", "--cluster-enabled", "yes", "--cluster-config-file", "/data/nodes-6372.conf", "--cluster-node-timeout", "5000", "--appendonly", "yes", "--requirepass", "1234", "--protected-mode", "no"]
volumes:
- redis-data-6372:/data
networks:
- redis-cluster
redis-6373:
image: redis:latest
container_name: redis-6373
ports:
- "6373:6373"
command: ["redis-server", "--cluster-enabled", "yes", "--cluster-config-file", "/data/nodes-6373.conf", "--cluster-node-timeout", "5000", "--appendonly", "yes", "--requirepass", "1234", "--protected-mode", "no"]
volumes:
- redis-data-6373:/data
networks:
- redis-cluster
redis-6374:
image: redis:latest
container_name: redis-6374
ports:
- "6374:6374"
command: ["redis-server", "--cluster-enabled", "yes", "--cluster-config-file", "/data/nodes-6374.conf", "--cluster-node-timeout", "5000", "--appendonly", "yes", "--requirepass", "1234", "--protected-mode", "no"]
volumes:
- redis-data-6374:/data
networks:
- redis-cluster
redis-6375:
image: redis:latest
container_name: redis-6375
ports:
- "6375:6375"
command: ["redis-server", "--cluster-enabled", "yes", "--cluster-config-file", "/data/nodes-6375.conf", "--cluster-node-timeout", "5000", "--appendonly", "yes", "--requirepass", "1234", "--protected-mode", "no"]
volumes:
- redis-data-6375:/data
networks:
- redis-cluster
redis-6376:
image: redis:latest
container_name: redis-6376
ports:
- "6376:6376"
command: ["redis-server", "--cluster-enabled", "yes", "--cluster-config-file", "/data/nodes-6376.conf", "--cluster-node-timeout", "5000", "--appendonly", "yes", "--requirepass", "1234", "--protected-mode", "no"]
volumes:
- redis-data-6376:/data
networks:
- redis-cluster
networks:
redis-cluster:
name: redis-cluster
driver: bridge
volumes:
redis-data-6371:
redis-data-6372:
redis-data-6373:
redis-data-6374:
redis-data-6375:
redis-data-6376:
启动容器
必须在docker-compose.yml文件所在目录下启动,这里是在 /home/redis-cluster目录下
执行命令:
docker compose up -d

查看容器状态
docker ps

创建集群
执行以下命令
docker exec -it redis-6371 redis-cli --cluster create redis-6371:6379 redis-6372:6379 redis-6373:6379 redis-6374:6379 redis-6375:6379 redis-6376:6379 --cluster-replicas 1 -a 1234
执行后输入"yes"同意
![]()
成功创建集群

使用以下命令来检查集群状态:
docker exec -it redis-6371 redis-cli -a 1234 CLUSTER NODES

使用 CLUSTER INFO 检查集群信息:
docker exec -it redis-6371 redis-cli -a 1234 CLUSTER INFO


2349

被折叠的 条评论
为什么被折叠?



