当前位置: 首页 > ops >正文

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

📋 完整步骤:部署 Redis 集群

✅ 步骤 1:安装 Docker 和 Docker Compose

首先,确保你的 Ubuntu 系统已经安装了 Docker 和 Docker Compose。如果没有安装,执行以下命令:

# 更新系统
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 集群的目录下创建一个文件夹:

mkdir redis-cluster && cd redis-cluster

✅ 步骤 3:创建 docker-compose.yml 文件

使用任何编辑器创建 docker-compose.yml 文件:

nano docker-compose.yml

将以下内容粘贴到文件中:

version: '3.8'services:redis-node-1:image: redis:5.0.14container_name: redis-node-1ports:- "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.130redis-node-2:image: redis:5.0.14container_name: redis-node-2ports:- "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.130redis-node-3:image: redis:5.0.14container_name: redis-node-3ports:- "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.130redis-node-4:image: redis:5.0.14container_name: redis-node-4ports:- "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.130redis-node-5:image: redis:5.0.14container_name: redis-node-5ports:- "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.130redis-node-6:image: redis:5.0.14container_name: redis-node-6ports:- "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 集群:

docker-compose up -d

这会启动 6 个 Redis 容器,分别绑定到 7001~7006 端口。

✅ 步骤 5:确认 Redis 节点已开启集群模式

执行以下命令,检查 Redis 节点是否启用了集群模式:

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 集群:

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:验证集群状态

创建完成后,执行以下命令来检查集群状态:

docker exec -it redis-node-1 redis-cli -p 7001 cluster nodes

你应该能看到类似如下输出,显示所有节点的信息:

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

sudo apt install redis-tools -y

2. 如果某个节点无法启动,检查容器日志:

docker logs redis-node-1

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


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

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

http://www.xdnf.cn/news/4717.html

相关文章:

  • 为什么 MySQL 用 B+ 树作为数据的索引,以及在 InnoDB 中数据库如何通过 B+ 树索引来存储数据以及查找数据
  • base64与图片的转换和预览(高阶玩法)
  • 【Ubuntu系统镜像文件下载(官网)】
  • AI赋能高频PCB信号完整性优化
  • 正态分布和幂律分布
  • 存储器:DDR和HBM的区别
  • css样式基础
  • Python中,正则表达式,
  • 观察者GIS知识星球资源汇总-2025V1
  • 当数据爆炸遇上SQL Server:优化策略全链路解析
  • 深度解析语义分割评估指标:从基础到创新实践
  • TLS(传输层安全协议)
  • 66、微服务保姆教程(九)微服务的高可用性
  • 代码随想录第37天:动态规划10(公共子序列问题)
  • css3伸缩盒模型第三章(伸缩相关)
  • obj = null; 赋值null之前没有其他引用指向obj对象,那么,当obj=null时,会被垃圾回收机制立即回收吗?
  • 湖北理元理律师事务所:债务优化中的“生活保障”方法论
  • PCIe控制器介绍(二)
  • 47. 全排列 II
  • C++类继承学习笔记
  • 【软件推荐——ScreenToGif】
  • flutter 资料收集
  • Unity基础学习(九)基本组件Transform
  • 土壤电导率传感器测定土壤溶液中的可溶盐离子 智慧农业指导作用
  • 如何使用原点回归方式35进行回原
  • RHEL8搭建FOU隧道
  • Mybatis解决以某个字段存在,批量更新,不存在批量插入(高效)(一)
  • 【QT】深入理解 Qt 中的对象树:机制、用途与最佳实践
  • 第十六届蓝桥杯大赛软件赛C/C++大学B组部分题解
  • Spring Boot 3 + Undertow 服务器优化配置