BGREWRITEAOF
语法
BGREWRITEAOF
- 可用版本
- Redis 开源版 1.0.0
- 时间复杂度
- O(1)
- ACL 分类
-
@admin
,@slow
,@dangerous
,
指示 Redis 启动一个 Append Only File 重写过程。重写将创建当前 Append Only File 的一个小型优化版本。
如果 BGREWRITEAOF
失败,由于旧的 AOF 文件未被触动,因此不会丢失数据。
只有当没有其他后台进程正在进行持久化时,Redis 才会触发重写。
具体来说
- 如果一个 Redis 子进程正在磁盘上创建快照,AOF 重写会被安排,但在生成 RDB 文件的保存子进程终止之前不会启动。在这种情况下,
BGREWRITEAOF
仍然会返回一个积极的状态回复,但会附带适当的消息。您可以通过查看 Redis 2.6 或更高版本的INFO
命令来检查 AOF 重写是否已安排。 - 如果一个 AOF 重写过程已经在进行中,该命令会返回错误,并且不会为稍后时间安排 AOF 重写。
- 如果 AOF 重写可以开始,但启动尝试失败(例如,由于创建子进程时出错),则会向调用者返回错误。
从 Redis 2.4 开始,AOF 重写由 Redis 自动触发,但 BGREWRITEAOF
命令可用于随时触发重写。
有关详细信息,请参阅持久化文档。
RESP2 回复
简单字符串回复:一个简单的字符串回复,表示在调用成功执行时,重写已开始或即将尽快开始。
在某些情况下,该命令可能会回复错误,如上文所述。
RESP3 回复
批量字符串回复:一个简单的字符串回复,表示在调用成功执行时,重写已开始或即将尽快开始。
在某些情况下,该命令可能会回复错误,如上文所述。