CONFIG REWRITE

语法
CONFIG REWRITE
可用版本
Redis 开源版 2.8.0
时间复杂度
O(1)
ACL 分类
@admin, @slow, @dangerous,

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

重写操作以一种非常保守的方式执行

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

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

原子重写过程

为了确保 redis.conf 文件始终保持一致,也就是说,在发生错误或崩溃时,您要么保留旧文件,要么得到新文件,重写操作通过一个 write(2) 系统调用完成。这个调用写入的内容足够大,至少与旧文件一样大。有时会以注释的形式添加额外的填充,以确保生成的文件足够大,之后会截断文件以移除末尾的填充。

RESP2/RESP3 回复

简单字符串回复: 当配置成功重写时返回 OK。否则返回错误。
评价此页面
回到顶部 ↑