RDB(Redis DataBase)和 AOF(Append Only File)是 Redis 中两种不同的持久化机制,它们有以下几点区别:

  1. 写入方式:RDB 是通过快照(snapshot)机制,将 Redis 中的数据集以二进制文件的方式写入硬盘;AOF 则是通过将 Redis 服务器执行的所有写命令(例如 set、del、incrby 等)记录在 AOF 文件中,写入方式是追加写入。
  2. 数据恢复:当 Redis 重启时,可以根据 RDB 文件或 AOF 文件来恢复数据。恢复 RDB 文件比恢复 AOF 文件快,因为 RDB 文件包含了一个时间点上的快照,可以直接将整个数据集加载到内存中。而恢复 AOF 文件则需要逐条执行文件中记录的命令,需要更长的时间。
  3. 数据完整性:RDB 文件保存的是 Redis 在某个时间点的数据快照,如果 Redis 在快照操作之后宕机,可能会丢失最后一次快照后的数据。而 AOF 文件记录了 Redis 所有的写命令,因此即使 Redis 宕机,也可以根据 AOF 文件恢复数据。
  4. 文件大小:RDB 文件通常比 AOF 文件小,因为它只保存了一个时间点的数据快照,而 AOF 文件保存了所有的写命令,会比 RDB 文件大。
  5. 性能影响:AOF 文件追加写入方式可能会降低 Redis 的写性能,但可以提供更好的数据安全性,而 RDB 文件在进行快照时可能会阻塞 Redis 的服务。

特殊说明

以上内容来自我的《Java 面试突击训练营》,这门课程是有着十几年工作经验(前 360 开发工程师),10 年面试官经验的我,花费 4 年时间打磨完成的一门视频面试课。学完训练营的课程之后,基本可以应对目前市面上绝大部分公司的面试了,并且课程配备了 9 大就业服务,帮助上千人找到 Java 工作,其中上百人拿到大厂 Offer,学员最高薪资 70W 年薪,面试课目录和 9 大服务如下:

加我微信咨询:vipStone【备注:训练营】