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. 验证集群节点。

相关推荐
勇哥的编程江湖9 小时前
starrocks官网docker部署mysql无法连接
运维·docker·容器
半新半旧10 小时前
python 整合使用 Redis
redis·python·bootstrap
小码过河.11 小时前
CentOS 搭建 Docker 私有镜像仓库
linux·docker·centos
daixin884812 小时前
什么是缓存雪崩?缓存击穿?缓存穿透?分别如何解决?什么是缓存预热?
java·开发语言·redis·缓存
daixin884814 小时前
Redis过期数据的删除策略是什么?有哪些?
数据库·redis·缓存
飞询14 小时前
部署 coze-loop
docker·coze
龙卷风040514 小时前
使用本地IDEA连接服务器远程构建部署Docker服务
后端·docker
终端行者16 小时前
k8s之Ingress服务接入控制器
云原生·容器·kubernetes
幻灭行度17 小时前
通过redis_exporter监控redis cluster
数据库·redis·缓存
longxibo20 小时前
飞牛系统安装DataEase自定义Docker包
运维·docker·容器