*Redis config-rewrite 命令

*语法

CONFIG REWRITE

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

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

  • 保留原始 redis.conf 中的注释和整体结构。
  • 如果选项在旧 redis.conf 文件中已存在,则会在相同位置(行号)重写。
  • 如果选项之前不存在,但设置为默认值,则重写过程不会添加它。
  • 如果选项之前不存在,但设置为非默认值,则会追加到文件末尾。
  • 未使用的行被留空。例如,如果您以前有多个 save 指令,但当前配置更少或没有(因为您禁用了 RDB 持久化),所有行都将留空。

如果原始文件因某种原因不再存在,CONFIG REWRITE 也能够从头开始重写配置文件。但是,如果服务器启动时根本没有配置文件,则 CONFIG REWRITE 将返回错误。

*原子重写过程

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

*返回值说明

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