redis 6/7 原生 cluster 模式是 linux 分布式缓存部署首选,需严格遵循四步闭环:选型(3主3从共6节点)、通信(开放客户端及+10000集群总线端口、禁用protected-mode、ssh免密互通)、配置(统一模板差异化port/bind/pidfile)、初始化(redis-cli --cluster create,禁用redis-trib.rb)。

Linux 服务器部署分布式缓存集群,核心是选型、通信基础、节点部署和集群初始化四步闭环。不依赖商业中间件,用原生 Redis 集群模式最稳妥实用。
明确部署模式:Redis Cluster 是当前主流选择
生产环境推荐 Redis 6/7 原生 Cluster 模式(非 Sentinel 或 Codis),它自带数据分片、故障转移和去中心化协调能力。最低要求 6 个节点(3 主 3 从),确保高可用与容错。单机伪集群仅用于学习验证,真实部署必须跨物理机或云服务器实例。
- 每个节点需独立 IP 和端口(如 7000–7005)
- 必须同时开放两个端口:客户端端口(如 7000)和对应集群总线端口(client_port + 10000,即 17000)
- 禁用 protected-mode yes,否则节点间握手失败
- 务必开启 appendonly yes,避免重启丢数据
打通通信底座:SSH 免密 + 网络连通是前提
所有节点之间必须能无密码 SSH 互访(ceph-deploy、redis-cli cluster create 都依赖此),且集群总线端口全部互通。这不是可选项,而是启动集群前的硬性检查项。
- 在管理节点生成密钥:
ssh-keygen -t rsa -b 4096,不设密码 - 用
ssh-copy-id user@host分发公钥到全部节点 - 用
telnet 192.168.x.x 17000逐台测试集群总线端口是否可达 - 云服务器务必在安全组中放行两组端口(如 7000 & 17000),缺一不可
配置与启动:统一模板 + 批量分发
6 个节点的配置不能手敲,用模板+脚本保证一致性。关键字段必须差异化:port、pidfile、cluster-config-file、bind 地址。
- 编辑一份标准 redis.conf,启用:
cluster-enabled yes、cluster-node-timeout 5000、bind 本机真实IP - 用 for 循环批量同步配置并启动:
for i in 192.168.1.{1..6}; do scp redis.conf $i:/etc/redis/; ssh $i "systemctl restart redis"; done - 确认每个节点进程监听正确:
ss -tlnp | grep ':700[0-9]\|:1700[0-9]'
初始化集群:用 redis-cli --cluster 创建
Redis 5.0 起已废弃 redis-trib.rb,全部由内置 redis-cli --cluster 工具完成。命令执行前,确保所有节点进程已在运行且端口就绪。
- 创建命令示例(6 节点,每主配 1 从):
redis-cli --cluster create 192.168.1.1:7000 192.168.1.2:7001 ... 192.168.1.6:7005 --cluster-replicas 1 - 连接集群必须加
-c参数:redis-cli -c -h 192.168.1.1 -p 7000 - 验证状态:
redis-cli --cluster check 192.168.1.1:7000,输出 “OK” 表示健康











