• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • bgrewriteaof 命令

    Bgrewriteaof命令用于异步执行一个 AOF(AppendOnly File)文件重写操作。重写会创建一个当前 AOF 文件的体积优化版本。即使Bgrewriteaof执行失败,也不会有任何数据丢失,因为旧的 AOF 文件在Bgrewriteaof成功之前不会被修改。


    AOF 重写由 Redis 自行触发,Bgrewriteaof仅仅用于手动触发重写操作。

    • 如果一个子Redis是通过磁盘快照创建的,AOF 重写将会在 RDB终止后才开始保存。这种情况下BGREWRITEAOF任然会返回 OK 状态码。可以通过INFO命令查看AOF重写执行情况。
    • 如果只在执行的 AOF 重写返回一个错误,AOF 重写将会在稍后一点的时间重新调用。


    AOF 持久化是通过保存 redis 服务器所执行的写命令来记录数据库状态的;被写入 AOF 文件的所有命令都是以 Redis 的命令请求协议格式保存的(Redis的请求协议是纯文本的)。服务器在启动时,通过载入AOF文件、并执行其中的命令来还原服务器状态。使用Bgrewriteaof命令的好处:

    • 随着 AOF 文件越来越大,里面会有大部分是重复命令或者可以合并的命令(100次incr = set key 100)
    • 重写的好处:减少 AOF 文件大小,减少内存占用,加快数据库恢复时间。

    语法

    BGREWRITEAOF

    返回值

    反馈信息。

    实例

    redis> BGREWRITEAOF
    redis>
    Background append only file rewriting started

    上篇:bgsave 命令

    下篇:lastsave 命令