Redis BGREWRITEAOF命令

Redis BGREWRITEAOF命令教程

Redis 的 BGREWRITEAOF 命令用于异步执行一个 AOF(AppendOnly File) 文件重写操作。重写会创建一个当前 AOF 文件的优化版本。

即使 BGREWRITEAOF 执行失败,也不会有任何数据丢失,因为旧的 AOF 文件在 BGREWRITEAOF 成功之前不会被修改。

Redis BGREWRITEAOF命令触发

  • 如果 Redis 的子进程正在执行快照的保存工作,那么 AOF 重写的操作会被预定(scheduled),等到保存工作完成之后再执行 AOF 重写。在这种情况下, BGREWRITEAOF 的返回值仍然是 OK ,但还会加上一条额外的信息,说明 BGREWRITEAOF 要等到保存操作完成之后才能执行。在 Redis 2.6 或以上的版本,可以使用 INFO 命令查看 BGREWRITEAOF 是否被预定。
  • 如果已经有别的 AOF 文件重写在执行,那么 BGREWRITEAOF 返回一个错误,并且这个新的 BGREWRITEAOF 请求也不会被预定到下次执行。
  • 从 Redis 2.4 开始, AOF 重写由 Redis 自行触发, BGREWRITEAOF 仅仅用于手动触发重写操作。

Redis BGREWRITEAOF命令详解

语法

192.168.98.70:6379> BGREWRITEAOF

返回值

反馈信息。

时间复杂度

O(1)

可用版本

>= 1.0.0

案例

BGREWRITEAOF重写AOF

使用 BGREWRITEAOF 命令重写 AOF 文件

127.0.0.1:6379> BGREWRITEAOF Background append only file rewriting started 127.0.0.1:6379>

使用 BGREWRITEAOF 命令重写了 AOF 文件。

Redis BGREWRITEAOF命令总结

Redis 的 BGREWRITEAOF 命令用于异步执行一个 AOF(AppendOnly File) 文件重写操作。