# Config rewrite

对启动 Redis 服务器时所指定的 redis.conf 配置文件进行改写

语法

CONFIG REWRITE
  • 可用版本:

    2.8.0

  • 时间复杂度:

    O(1)

  • ACL 类别:

    @admin, @slow, @dangerous

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

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

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

如果原始配置文件由于某种原因不再存在,CONFIG REWRITE 还能够从头开始重写配置文件。但是,如果服务器在没有配置文件的情况下启动,则 CONFIG REWRITE 只会返回一个错误。

# 原子重写过程

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

# 返回

简单字符串回复:当配置被正确重写时,OK。否则将返回一个错误。

# 反馈

如果您在此页面上发现问题,或有改进建议,请提交请求以合并或打开存储库中的问题。

Last Updated: 4/18/2023, 8:45:33 AM