📋 完整步骤:部署 Redis 集群
✅ 步骤 1:安装 Docker 和 Docker Compose
首先,确保你的 Ubuntu 系统已经安装了 Docker 和 Docker Compose。如果没有安装,执行以下命令:
bash
# 更新系统
sudo apt update
# 安装 Docker
sudo apt install docker.io -y
# 启动 Docker 服务并设置为开机自启
sudo systemctl enable --now docker
# 安装 Docker Compose
sudo apt install docker-compose -y
✅ 步骤 2:创建 Redis 集群文件夹
在你想部署 Redis 集群的目录下创建一个文件夹:
bash
mkdir redis-cluster && cd redis-cluster
✅ 步骤 3:创建 docker-compose.yml
文件
使用任何编辑器创建 docker-compose.yml
文件:
bash
nano docker-compose.yml
将以下内容粘贴到文件中:
yaml
version: '3.8'
services:
redis-node-1:
image: redis:5.0.14
container_name: redis-node-1
ports:
- "7001:7001"
command: redis-server --port 7001 --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000 --appendonly yes --bind 0.0.0.0 --cluster-announce-ip 192.168.111.130
redis-node-2:
image: redis:5.0.14
container_name: redis-node-2
ports:
- "7002:7002"
command: redis-server --port 7002 --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000 --appendonly yes --bind 0.0.0.0 --cluster-announce-ip 192.168.111.130
redis-node-3:
image: redis:5.0.14
container_name: redis-node-3
ports:
- "7003:7003"
command: redis-server --port 7003 --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000 --appendonly yes --bind 0.0.0.0 --cluster-announce-ip 192.168.111.130
redis-node-4:
image: redis:5.0.14
container_name: redis-node-4
ports:
- "7004:7004"
command: redis-server --port 7004 --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000 --appendonly yes --bind 0.0.0.0 --cluster-announce-ip 192.168.111.130
redis-node-5:
image: redis:5.0.14
container_name: redis-node-5
ports:
- "7005:7005"
command: redis-server --port 7005 --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000 --appendonly yes --bind 0.0.0.0 --cluster-announce-ip 192.168.111.130
redis-node-6:
image: redis:5.0.14
container_name: redis-node-6
ports:
- "7006:7006"
command: redis-server --port 7006 --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 5000 --appendonly yes --bind 0.0.0.0 --cluster-announce-ip 192.168.111.130
- 这里的
192.168.111.130
是你宿主机的 IP 地址,请根据你的环境调整。 - 每个 Redis 节点绑定到不同的端口(7001~7006),并启用了集群模式。
保存文件后退出(在 nano 编辑器中按 CTRL + X
,然后按 Y
保存)。
✅ 步骤 4:启动 Redis 集群
在 redis-cluster
文件夹中,执行以下命令来启动 Redis 集群:
bash
docker-compose up -d
这会启动 6 个 Redis 容器,分别绑定到 7001~7006 端口。
✅ 步骤 5:确认 Redis 节点已开启集群模式
执行以下命令,检查 Redis 节点是否启用了集群模式:
bash
docker exec -it redis-node-1 redis-cli -p 7001 info | grep cluster_enabled
如果显示 cluster_enabled:1
,说明集群模式已开启。
✅ 步骤 6:初始化 Redis 集群
安装 redis-cli
用于创建Redis集群:
bash复制编辑sudo apt update
sudo apt install redis-tools
这会安装 redis-cli
命令行工具,与你的 Redis 版本无强依赖,可以用于 Redis 5、6、7 都没问题。
在宿主机上,执行以下命令来创建 Redis 集群:
bash
redis-cli --cluster create \
192.168.111.130:7001 192.168.111.130:7002 192.168.111.130:7003 \
192.168.111.130:7004 192.168.111.130:7005 192.168.111.130:7006 \
--cluster-replicas 1
输入 yes
确认集群创建。
✅ 步骤 7:验证集群状态
创建完成后,执行以下命令来检查集群状态:
bash
docker exec -it redis-node-1 redis-cli -p 7001 cluster nodes
你应该能看到类似如下输出,显示所有节点的信息:
bash
192.168.111.130:7001 master - 0 1681484071334 1 connected 0-5460
192.168.111.130:7002 master - 0 1681484071334 2 connected 5461-10922
192.168.111.130:7003 master - 0 1681484071334 3 connected 10923-16383
...
这表示你的 Redis 集群已经成功搭建,并且每个节点都已经正确加入。
🛠️ 常见问题解决
1. 如果提示 redis-cli not found
,请执行以下命令安装 redis-cli
:
bash
sudo apt install redis-tools -y
2. 如果某个节点无法启动,检查容器日志:
bash
docker logs redis-node-1
如果遇到错误,可以根据日志进行排查。
🚀 完整集群部署步骤总结:
- 安装 Docker 和 Docker Compose。
- 创建项目文件夹并编写
docker-compose.yml
配置文件。 - 启动 Redis 集群服务。
- 确认节点是否启用集群模式。
- 使用
redis-cli
创建 Redis 集群。 - 验证集群节点。