目录

第一部分,先说明这两种持久化机制的特性

第二部分,说明这两种机制的工作原理

第三部分,AOF和RDB的优缺点分析


关于RDB和AOF的实现原理以及优缺点,可以分成三个部分去回答:

第一部分,先说明这两种持久化机制的特性

RDB和AOF都是Redis里面提供的持久化机制,RDB是通过快照方式实现持久化、AOF是通过命令追加的方式实现持久化。

第二部分,说明这两种机制的工作原理

【如图】RDB持久化机制会根据快照触发条件,把内存里面的数据快照写入到磁盘,以二进制的压缩文件进行存储。

redis bgsave在哪里_持久化

RDB快照的触发方式有很多,比如:

    1、执行bgsave命令触发异步快照,执行save命令触发同步快照,同步快照会阻塞客户端的执行指令。

    2、根据redis.conf文件里面的配置,自动触发bgsave

   3、主从复制的时候触发

【如图】,AOF持久化机制是近乎实时的方式来完成持久化的,就是客户端执行一个数据变更的操作,Redis Server就会把这个命令追加到aof缓冲区的末尾,然后再把缓冲区的数据写入到磁盘的AOF文件里面,至于最终什么时候真正持久化到磁盘,是根据刷盘的策略来决定的。

redis bgsave在哪里_开发语言_02

为了避免追加的方式导致AOF文件过大的问题,Redis提供了AOF重写机制(如图),也就是说当AOF文件的大小达到某个阈值的时候,就会把这个文件里面相同的指令进行压缩。

redis bgsave在哪里_开发语言_03

第三部分,AOF和RDB的优缺点分析

RDB和AOF的优缺点有两个:

    1、RDB是每隔一段时间触发持久化,因此数据安全性低,AOF可以做到实时持久化,数据安全性较高。

    2、RDB文件默认采用压缩的方式持久化,AOF存储的是执行指令,所以RDB在数据恢复的时候性能比AOF要好。

通过这样的回答,逻辑清晰,表达完整,会给面试官一个很好的感受。