CONFIG REWRITE
将有效配置保存到文件中。
语法
CONFIG REWRITE
引入版本:2.8.0
复杂度摘要:O(1)
CONFIG REWRITE 命令重写服务器启动时使用的 redis.conf 文件,应用使其反映服务器当前使用的配置所需的最小更改,由于使用了 CONFIG SET 命令,该配置可能与原始配置不同。
重写以非常保守的方式执行:
- 尽可能保留原redis.conf的注释和整体结构。
- 如果旧的redis.conf文件中已经存在某个选项,则会在同一位置(行号)重写该选项。
- 如果某个选项尚不存在,但已设置为默认值,则重写过程不会添加该选项。
- 如果选项尚不存在,但设置为非默认值,则会将其附加到文件末尾。
- 未使用的行被消隐。例如,如果您曾经有多个
save指令,但当前配置较少或没有,因为您禁用了 RDB 持久性,则所有行都将被清空。
如果原始配置文件由于某种原因不再存在,CONFIG REWRITE 还可以从头开始重写配置文件。但是,如果服务器在根本没有配置文件的情况下启动,则 CONFIG REWRITE 将仅返回错误。
原子重写过程
为了确保 redis.conf 文件始终一致,即在出现错误或崩溃时,您始终以旧文件或新文件结束,重写是通过单个 write(2) 调用执行的,该调用具有足够的内容,至少与旧文件一样大。有时会添加注释形式的附加填充,以确保生成的文件足够大,然后文件会被截断以删除末尾的填充。
Redis Software 与 Redis Cloud 兼容性
| Redis 软件 |
Redis Cloud |
说明 |
|---|---|---|
| ✅ 标准 |
✅ 标准 |
返回值
RESP2
简单字符串回复:配置正确重写时的OK。否则返回错误。
RESP3
简单字符串回复:配置正确重写时的OK。否则返回错误。
资料来源:Redis 官方 CONFIG REWRITE 文档;中文内容参考 Redis 文档许可。