面试题答案
一键面试数据恢复过程
- RDB持久化:在恢复时,直接将RDB文件读入内存。Redis启动时,会自动检测是否存在RDB文件,如果存在,则按照RDB文件中的数据结构将数据重建到内存中。
- AOF持久化:在恢复时,Redis会读取AOF文件,然后按照文件中记录的写命令,从前往后重新执行一遍,从而重建数据。
恢复速度
- RDB持久化:恢复速度相对较快。因为RDB文件是对某一时刻数据库的快照,直接将其读入内存即可完成数据恢复,无需执行大量的命令。
- AOF持久化:恢复速度相对较慢。由于需要重新执行AOF文件中的所有写命令来重建数据,命令数量越多,恢复所需的时间就越长。
恢复数据完整性
- RDB持久化:数据完整性相对较差。RDB是定期或在特定条件下进行快照,可能会丢失上次快照之后到故障发生之间的数据。
- AOF持久化:数据完整性相对较好。AOF采用追加写命令的方式,只要配置的fsync策略合适(如always),可以保证只丢失最后一次fsync到故障发生之间的数据,数据丢失量相对较少。