面试题答案
一键面试Redis AOF持久化机制重写操作触发条件
- 自动触发:
- 配置参数:通过
auto - aof - rewrite - min - size
和auto - aof - rewrite - percentage
两个配置参数控制。 - 触发逻辑:当 AOF 文件大小超过
auto - aof - rewrite - min - size
(默认64MB),并且当前 AOF 文件大小 比上次重写后的大小增长了auto - aof - rewrite - percentage
(默认100%)时,会自动触发 AOF 重写。
- 配置参数:通过
- 手动触发:
- 命令:执行
BGREWRITEAOF
命令,该命令会让 Redis 在后台异步执行 AOF 重写操作。
- 命令:执行
重写机制存在的原因
- 文件体积优化:
- 问题:随着 Redis 不断进行写操作,AOF 文件会持续增大。因为 AOF 是将每个写命令追加到文件末尾,一些对同一数据的多次修改命令会冗余存储。
- 解决:重写机制会对 AOF 文件进行优化,将对同一数据的多条写命令合并为一条,从而大大减小 AOF 文件体积。
- 恢复效率提升:
- 问题:过大的 AOF 文件在 Redis 重启时,需要花费较长时间进行重放恢复数据,影响 Redis 启动速度。
- 解决:经过重写的较小 AOF 文件,在重放时速度更快,能更快地让 Redis 恢复到故障前的数据状态,提高恢复效率。