*Redis CLUSTER SAVECONFIG 命令

CLUSTER SAVECONFIG 强制将当前集群的配置状态保存到磁盘上的 nodes.conf 文件中。


*语法

CLUSTER SAVECONFIG

*参数说明

无参数。


*返回值

  • OK:保存成功。

*时间复杂度

O(1)

*

*示例

*手动保存集群配置

> CLUSTER SAVECONFIG
OK

*在集群变更后保存

> CLUSTER MEET 192.168.1.20 6379
OK
> CLUSTER SAVECONFIG
OK

*常见错误

错误 原因 解决
ERR This instance has cluster support disabled 未启用集群模式 在 redis.conf 中设置 cluster-enabled yes
ERR Unable to save cluster config 磁盘空间不足或文件权限不足 检查磁盘空间和 dir 配置项对应目录的权限

*最佳实践

  • Redis Cluster 在集群拓扑发生变化时(如节点加入、槽迁移、故障转移)会自动保存配置,通常无需手动调用此命令
  • 手动调用的场景:修改了集群配置后希望立即持久化,或在调试时需要确认当前配置已写入文件
  • 配置文件默认位于 dir 配置项指定的目录下,文件名由 cluster-config-file 配置项指定(默认 nodes.conf
  • 生产环境不建议频繁手动调用,Redis 已实现了自动保存机制,过度手动调用可能增加不必要的磁盘 I/O

*FAQ

Q1: 配置保存的频率是怎样的? A: Redis 在以下情况自动保存集群配置:节点加入或离开、槽分配变化、故障转移完成。自动保存是异步的,但延迟通常很小。

Q2: 删除 nodes.conf 会有什么后果? A: 节点重启后会丢失集群拓扑信息,无法正确加入集群。若文件丢失,需要手动重建(通过 CLUSTER MEET 重新加入集群),可能导致数据不可访问。务必做好 nodes.conf 的备份。

Q3: 和 CONFIG REWRITE 有什么区别? A: CONFIG REWRITE 重写 redis.conf 文件中的配置参数;CLUSTER SAVECONFIG 保存的是 nodes.conf 文件,存储集群节点拓扑和槽分配信息。两者保存的内容和用途完全不同。