首页/数据/Redis 进阶速查/cluster-config-file(nodes.conf)

cluster-config-file(nodes.conf)

nodes.conf 保存集群拓扑、节点 ID、槽分配与纪元信息,由节点自动维护;集群每个节点有各自的一份,推荐按端口区分文件名。

Redis 进阶速查数据更新于 2026-10-13

nodes.conf 存了什么

cluster-config-file 指定节点保存集群拓扑状态的文件名,默认 nodes.conf,位置在 dir 指定的目录下。文件内容由节点自动维护,包含本节点与其他节点的 ID、地址、角色、槽区间以及配置纪元,节点重启时靠它恢复集群身份。官方明确要求不要人工编辑,手改后文件内容与实际状态冲突,容易出现身份混乱。

基本信息

默认文件名nodes.conf
存放位置dir 参数指向的数据目录
文件内容节点 ID、地址、角色、槽区间、配置纪元
维护方式由节点自动重写,禁止手工编辑
部署建议同一机器多实例按端口区分文件名

典型使用场景

  • 同一台机器上跑多个集群实例,必须为每个实例指定不同的文件名
  • 集群备份时把它与数据文件一起收走,否则恢复后拓扑对不上
  • 节点拓扑信息损坏或丢失后,从备份中还原以恢复原有身份
  • 排查节点重启后 ID 变化、槽信息丢失一类问题
  • 容器化部署时确认它落在持久化卷而不是临时层

配置与查看

配置与查看
cluster-config-file nodes-7000.conf     # redis.conf 中的配置写法
cluster-enabled yes                     # 集群模式必须显式开启
ls -l /data/redis-7000/nodes-7000.conf  # 确认文件位置与大小
head -3 /data/redis-7000/nodes-7000.conf  # 只读查看,禁止编辑
redis-cli -p 7000 CLUSTER NODES         # 与文件内容对照,排查不一致

文件内容与风险

内容含义丢失或损坏的后果
节点 ID本节点在集群中的唯一身份重启后以新 ID 加入,历史身份丢失
槽区间本节点负责的槽范围槽归属混乱,需要人工重新分配
其他节点记录已知的集群成员列表需要重新握手发现,收敛变慢
配置纪元配置版本号,用于冲突裁决纪元回退可能引发拓扑震荡
节点重启会读取该文件恢复拓扑;若文件丢失,节点会以新身份加入集群,旧记录还会残留在其他节点的列表里,清理起来比想象中麻烦。
恢复集群时,数据文件与 nodes.conf 必须成对还原,只还原其中之一会得到数据在但槽不对、或槽对但数据空的现场。

易错点

  • 多实例共用同一 dir 且文件名相同,节点之间互相覆盖拓扑文件,是常见部署事故
  • 备份只取数据文件不取 nodes.conf,恢复后槽分布与预期完全不同
  • 手工编辑该文件试图修拓扑,内容与实际状态冲突导致节点身份混乱
  • 把文件放在容器临时层或临时目录,容器重建即丢失,节点身份每次都变

数据来源与参考

  • Redis 官方文档:集群配置文件说明
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌