面试题答案
一键面试RDB持久化方式
- 恢复速度:
- 特点:恢复速度相对较快。
- 原因:RDB 持久化是将 Redis 在某一时刻的内存数据快照写入磁盘,恢复时直接加载这个快照文件到内存。加载过程相对简单,不需要像 AOF 那样重放大量的写操作日志,所以速度快。
- 数据完整性:
- 特点:数据完整性不如 AOF 方式,可能会丢失部分数据。
- 原因:RDB 持久化是按一定时间间隔进行快照的,比如设置每 5 分钟执行一次快照。如果在两次快照之间发生故障,那么从上次快照之后到故障发生时的数据就会丢失。
AOF持久化方式
- 恢复速度:
- 特点:恢复速度相对较慢。
- 原因:AOF 持久化是将 Redis 执行的写操作以日志形式追加到文件末尾,恢复时需要重放这些日志来重建数据。重放大量写操作日志需要花费更多时间,所以恢复速度比 RDB 慢。
- 数据完整性:
- 特点:数据完整性更好,基本可以保证不丢失数据(取决于具体的刷盘策略)。
- 原因:AOF 日志记录了每一个写操作,只要日志文件完整,通过重放日志就可以恢复到故障前的状态。如果采用
always
刷盘策略,即每次写操作都同步到磁盘,那么即使发生故障也不会丢失数据;如果采用everysec
策略,最多可能丢失 1 秒的数据。