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

相关推荐
.Shu.1 小时前
Redis zset 渐进式rehash 实现原理、触发条件、执行流程以及数据一致性保障机制【分步源码解析】
数据库·redis·缓存
君不见,青丝成雪1 小时前
大数据技术栈 —— Redis与Kafka
数据库·redis·kafka
悟能不能悟1 小时前
排查Redis数据倾斜引发的性能瓶颈
java·数据库·redis
切糕师学AI1 小时前
.net core web程序如何设置redis预热?
redis·.netcore
Mi_Manchikkk1 小时前
Java高级面试实战:Spring Boot微服务与Redis缓存整合案例解析
java·spring boot·redis·缓存·微服务·面试
xiao-xiang2 小时前
redis-集成prometheus监控(k8s)
数据库·redis·kubernetes·k8s·grafana·prometheus
MANONGMN8 小时前
Kubernetes(K8s)常用命令全解析:从基础到进阶
云原生·容器·kubernetes
__lll_16 小时前
手把手教你用 Docker 部署 Vue 项目(含国内镜像加速 + 踩坑指南)
docker
TT哇17 小时前
@[TOC](计算机是如何⼯作的) JavaEE==网站开发
java·redis·java-ee
蚰蜒螟19 小时前
Spring 和 Lettuce 源码分析 Redis 节点状态检查与失败重连的工作原理
java·redis·spring