2025最新:3分钟使用Docker快速部署Redis集群

📋 完整步骤:部署 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

如果遇到错误,可以根据日志进行排查。


🚀 完整集群部署步骤总结:

  1. 安装 Docker 和 Docker Compose。
  2. 创建项目文件夹并编写 docker-compose.yml 配置文件。
  3. 启动 Redis 集群服务。
  4. 确认节点是否启用集群模式。
  5. 使用 redis-cli 创建 Redis 集群。
  6. 验证集群节点。

相关推荐
小刘|1 小时前
Redis 中简单动态字符串(SDS)的深入解析
数据库·redis·bootstrap
pqq的迷弟3 小时前
Redis的过期设置和策略
数据库·redis
leo·Thomas3 小时前
NetBox Docker 全功能部署方案(Ubuntu 22.04 + Docker)
运维·ubuntu·docker·容器·资产管理
不剪发的Tony老师3 小时前
Redis 8.0正式发布,再次开源为哪般?
数据库·redis
鱼儿也有烦恼5 小时前
Redis最新入门教程
数据库·redis·缓存
风象南7 小时前
Redis中6种缓存更新策略
redis·后端
L_598 小时前
火影bug,未保证短时间数据一致性,拿这个例子讲一下Redis
redis·bug·springcloud
秀才恶霸8 小时前
04-redis
数据库·redis·缓存
liyongjun631610 小时前
Redis实现分布式获取全局唯一自增ID的案例。
redis·分布式·全局唯一id