- 用法
-
CONFIG REWRITE
- 复杂度
- O(1)
- 始于
- 2.8.0
- ACL 类别
- @admin, @dangerous, @slow
- 原始 valkey.conf 的注释和整体结构将尽可能地保留。
- 如果旧的 valkey.conf 文件中已存在某个选项,它将在相同位置(行号)被重写。
- 如果某个选项之前不存在,但其值已设置为默认值,则重写过程不会添加它。
- 如果某个选项之前不存在,但其值已设置为非默认值,则会将其追加到文件末尾。
- 未使用的行将被清空。例如,如果您以前有多个
save
指令,但当前配置较少或没有,因为您禁用了 RDB 持久化,所有这些行都将被清空。
CONFIG REWRITE
命令会重写服务器启动时使用的 valkey.conf
文件,应用最小的更改,使其反映服务器当前使用的配置。该配置可能与原始配置不同,因为使用了 CONFIG SET
命令。
重写操作以非常保守的方式进行
如果原始配置文件因某种原因不再存在,CONFIG REWRITE 也可以从头开始重写配置文件。但是,如果服务器在启动时根本没有配置文件,CONFIG REWRITE 将返回错误。
原子重写过程
为了确保 valkey.conf 文件始终保持一致,即在错误或崩溃时始终保留旧文件或新文件,重写操作通过一次 write(2)
调用完成,该调用包含足够的内容,使其至少与旧文件一样大。有时会以注释的形式添加额外的填充,以确保结果文件足够大,之后文件会被截断以移除末尾的填充。
RESP2/RESP3 回复
简单字符串回复:配置正确重写时返回 OK
。否则返回错误。