docker运行redis集群核心是6节点(3主3从)在自定义网络中通过redis-cli --cluster create命令初始化,需正确配置port、cluster-enabled、bind、protected-mode等参数并开放服务端口与集群总线端口。

在 Docker 中运行 Redis 集群,核心是让多个 Redis 实例互相发现、通信,并完成槽位分配与主从关系建立。整个过程不依赖外部工具(如 redis-trib.rb 已被弃用),而是直接使用 redis-cli --cluster 命令完成集群创建。关键在于网络隔离、配置正确、端口开放和启动顺序。
准备基础环境
确保宿主机已安装 Docker 并正常运行。推荐使用 CentOS 8 / Ubuntu 20.04+ 或现代 Linux 发行版。Redis 官方镜像默认支持集群模式,无需额外编译。
- 拉取 Redis 镜像:
docker pull redis:7.2(建议指定稳定版本,避免 latest 不可控) - 创建专用桥接网络:
docker network create redis-cluster-net,所有节点必须在同一自定义网络中,才能通过容器名互通 - 关闭系统防火墙或放行对应端口(如 7001–7006、17001–17006),云服务器还需在安全组中同步开放
准备6个节点的配置文件
Redis Cluster 最小推荐架构为 3 主 3 从,共 6 个节点。每个节点需独立配置文件,关键项必须统一且差异化:
-
port 7001(每节点唯一,如 7001–7006) -
cluster-enabled yes(必须开启) -
cluster-config-file nodes.conf(每个容器内路径一致即可,Docker 会自动管理) -
cluster-node-timeout 5000(建议设为 5 秒,避免误判宕机) -
appendonly yes(开启 AOF 持久化,保障重启后数据不丢) -
bind 0.0.0.0(允许集群内其他节点连接,不可写 127.0.0.1) -
protected-mode no(集群模式下必须关闭保护模式) -
daemonize no(Docker 容器中必须设为 no,否则进程退出导致容器停止)
建议用脚本批量生成 6 份配置,仅修改 port 和 dir(数据挂载路径可保持一致)。
MiniMax 图片理解 + 网络搜索 MCP 工具。适配 Docker 环境(极空间等),支持图片 OCR 识别、图像内容理解、网络搜索。API Key 安全存储在本地 credentials 文件,不暴露在代码中。
启动6个 Redis 容器实例
以 7001 节点为例,其余只需替换端口、目录名和容器名:
mkdir -p /opt/redis-cluster/7001/{data,conf}
cp redis.conf /opt/redis-cluster/7001/conf/
# 修改 conf/redis.conf 中 port 为 7001
docker run -d \
--name redis-7001 \
--network redis-cluster-net \
--ip 172.20.0.11 \
-v /opt/redis-cluster/7001/conf/redis.conf:/etc/redis/redis.conf \
-v /opt/redis-cluster/7001/data:/data \
-p 7001:7001 \
-p 17001:17001 \
--restart=always \
redis:7.2 redis-server /etc/redis/redis.conf
- 每个节点映射两个端口:服务端口(7001)和集群总线端口(17001),后者 = 服务端口 + 10000,必须显式暴露
-
--ip可选但推荐,便于后续用固定 IP 创建集群,避免 DNS 解析不确定性 - 6 个容器全部启动后,用
docker ps确认状态,再用docker logs redis-7001查看是否提示Node configuration loaded
初始化集群并分配槽位
任选一个节点进入容器,执行集群创建命令:
docker exec -it redis-7001 bash redis-cli --cluster create \ 172.20.0.11:7001 \ 172.20.0.12:7002 \ 172.20.0.13:7003 \ 172.20.0.14:7004 \ 172.20.0.15:7005 \ 172.20.0.16:7006 \ --cluster-replicas 1
-
--cluster-replicas 1表示每 1 个主节点配 1 个从节点,6 节点自动均分为 3 主 3 从 - 命令会提示分配方案,输入
yes确认;成功后输出[OK] All 16384 slots covered - 此时集群已就绪,可用
redis-cli -h 172.20.0.11 -p 7001 cluster nodes查看完整拓扑
测试写入:redis-cli -h 172.20.0.11 -p 7001 set hello world,再换节点读取验证路由是否生效。










