Reids持久化面试题及答案

图片[1]-Reids持久化面试题及答案-不念博客

面试官:redis做为缓存,数据的持久化是怎么做的?

候选人

在Redis中提供了两种数据持久化的方式:1、RDB  2、AOF

面试官:这两种持久化方式有什么区别呢?

候选人

RDB是一个快照文件,它是把redis内存存储的数据写到磁盘上,当redis实例宕机恢复数据的时候,方便从RDB的快照文件中恢复数据。

AOF的含义是追加文件,当redis操作写命令的时候,都会存储这个文件中,当redis实例宕机恢复数据的时候,会从这个文件中再次执行一遍命令来恢复数据

面试官:这两种方式,哪种恢复的比较快呢?

候选人

RDB因为是二进制文件,在保存的时候体积也是比较小的,它恢复的比较快,但是它有可能会丢数据,我们通常在项目中也会使用AOF来恢复数据,虽然AOF恢复的速度慢一些,但是它丢数据的风险要小很多,在AOF文件中可以设置刷盘策略,我们当时设置的就是每秒批量写入一次命令

面试官:在实际生产中我们如何选择AOF和RDB持久化呢?

候选人

实际上他们两个是相互辅助的

  • 不能只设置RDB,因为只设置RDB会导致数据大量丢失(两次保存时间间隔的数据会丢失)
  • 不能只设置AOF,因为当 AOF 文件非常大时,恢复过程可能需要较长时间,RDB相对于AOF更加健壮,可以避免 AOF 这种复杂的备份和恢复机制的 bug;
  • Redis 支持同时开启开启两种持久化方式,我们可以综合使用 AOF 和 RDB 两种持久化机制,用 AOF 来保证数据不丢失,作为数据恢复的第一选择;用 RDB 来做不同程度的冷备,在 AOF 文件都丢失或损坏不可用的时候,还可以使用 RDB 来进行快速的数据恢复
© 版权声明
THE END