CONFIG REWRITE

将有效配置保存到文件中。

语法

CONFIG REWRITE

引入版本:2.8.0

复杂度摘要:O(1)

CONFIG REWRITE 命令重写服务器启动时使用的 redis.conf 文件,应用使其反映服务器当前使用的配置所需的最小更改,由于使用了 CONFIG SET 命令,该配置可能与原始配置不同。

重写以非常保守的方式执行:

  • 尽可能保留原redis.conf的注释和整体结构。
  • 如果旧的redis.conf文件中已经存在某个选项,则会在同一位置(行号)重写该选项。
  • 如果某个选项尚不存在,但已设置为默认值,则重写过程不会添加该选项。
  • 如果选项尚不存在,但设置为非默认值,则会将其附加到文件末尾。
  • 未使用的行被消隐。例如,如果您曾经有多个 save 指令,但当前配置较少或没有,因为您禁用了 RDB 持久性,则所有行都将被清空。

如果原始配置文件由于某种原因不再存在,CONFIG REWRITE 还可以从头开始重写配置文件。但是,如果服务器在根本没有配置文件的情况下启动,则 CONFIG REWRITE 将仅返回错误。

原子重写过程

为了确保 redis.conf 文件始终一致,即在出现错误或崩溃时,您始终以旧文件或新文件结束,重写是通过单个 write(2) 调用执行的,该调用具有足够的内容,至少与旧文件一样大。有时会添加注释形式的附加填充,以确保生成的文件足够大,然后文件会被截断以删除末尾的填充。

Redis Software 与 Redis Cloud 兼容性

Redis
软件
Redis
Cloud
说明
✅ 标准
✅ 主动-主动
✅ 标准
✅ 主动-主动

返回值

RESP2

简单字符串回复:配置正确重写时的OK。否则返回错误。

RESP3

简单字符串回复:配置正确重写时的OK。否则返回错误。

资料来源:Redis 官方 CONFIG REWRITE 文档;中文内容参考 Redis 文档许可。