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