Redis · 单选题 · 第 42 题
Java 后端开发面试 · 第 42 题
关于 Redis 的 RDB 和 AOF 持久化,下列说法正确的是?
- ARDB 逐条记录每一个写命令,AOF 则定期生成整个数据集的二进制快照文件
- BAOF 文件只会无限增长,Redis 没有任何手段可以压缩或者重写它
- CRDB 是某一时刻的快照,恢复快但可能丢失最近的数据;AOF 记录写命令,数据更完整
- D开启 RDB 后每次写入都会同步刷盘,所以 RDB 模式下不会丢任何数据
答案
C C. RDB 是某一时刻的快照,恢复快但可能丢失最近的数据;AOF 记录写命令,数据更完整
解析
RDB 用 fork 子进程生成二进制快照,文件小、恢复快,适合备份,但两次快照之间的写入会丢。AOF 追加写命令,appendfsync everysec 最多丢约 1 秒数据,并通过 AOF 重写来压缩文件。Redis 4 起支持混合持久化,AOF 重写时用 RDB 格式作为开头。