BGREWRITEAOF

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

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

注意:从 Redis 2.4 开始, AOF 重写由 Redis 自行触发, BGREWRITEAOF 仅仅用于手动触发重写操作。

只有当后台没有正在运行的持久化进程的时候,重写才会被 Redis 触发。

具体来说:

  • 如果一个 redis 的子进程在创建磁盘快照,AOF 重写被列入执行计划但是不会执行直到生成 RDB 的子程序退出。在这种情况下 BGREWRITEAOF 将仍然返回OK状态码, 不过使用一个合适的提示信息。你可以检查一个 AOF 重写是否被例入执行计划通过查询 INFO 命令。
  • 如果一个 AOF rewrite 已经在运行,那么这个命令将会返回错误并且不会有 AOF rewrite 命令被列入后续的执行计划中。
  • 如果 AOF 重启可以启动,但是在运行开始的时候失败(例如创建子进程失败),会返回错误信息给调用者。

从 Redis 2.4 起 AOF rewrite 是被自动触发的,当然 BGREWRITEAOF 命令可以用来在任何时间触发重写。

请参考 Redis持久化文档 获取更多信息。

*语法

redis Bgrewriteaof 命令基本语法如下:

redis 127.0.0.1:6379> BGREWRITEAOF 

*返回值

字符串: 启动重写的提示信息或者执行错误信息。