在线文档教程

config rewrite

CONFIG

CONFIG REWRITE

自2.8.0起可用。

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

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

  • 尽可能保留原始 redis.conf 的注释和整体结构。

  • 如果旧的 redis.conf 文件中已经存在一个选项,它将被重写在相同的位置(行号)。

  • 如果某个选项尚不存在,但它被设置为其默认值,则不会通过重写过程添加该选项。

  • 如果某个选项尚不存在,但它被设置为非默认值,则会将其添加到文件末尾。

  • 未使用的行空白。例如,如果您曾经有过多个save指令,但由于您禁用 RDB 持久性,当前配置较少或没有,因此所有行将被清空。

如果由于某种原因原来的配置文件不再存在,CONFIG REWRITE 也可以从头重写配置文件。但是,如果服务器根本没有配置文件启动,那么 CONFIG REWRITE 只会返回一个错误。

原子重写过程

为了确保 redis.conf 文件始终保持一致,即在发生错误或崩溃时始终以旧文件或新文件结尾,重写将使用一次write(2)调用来执行,该调用的内容足以满足至少与旧文件一样大。有时会添加注释形式的附加填充以确保生成的文件足够大,并且稍后会截断文件以删除末尾的填充。

返回值

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