Redis 持久化机制 RDB 和 AOF 区别

96 阅读2分钟
RDB和AOF介绍

持久化机制就是将Redis内存中的数据存储到硬盘当中,在Redis中持久化机制分为两种 RDB(Redis Database)和 AOF(Append-Only File)。

  • RDB RDB(Redis Database)是Redis默认的持久化机制,设置一个触发条件(比如1分钟内数据被修改了10次触发),当满足设置的条件之后,Redis会用快照的形式将Redis内存中的数据保存到硬盘上的RDB文件中,RDB文件是一个二进制文件,会对数据进行压缩减小从而达到节约内存空间。当Redis示例出现故障重启以后,就会从磁盘中读取快照文件,恢复数据。优于RDB文件是一个二进制文件,数据恢复速度快,但两次RDB备份之间可能会存在数据丢失的问题,RDB文件默认是保存在当前运行目录下。
  • AOF AOF是默认关闭的需要通过修改配置文件开启。AOF是通过追加日志文件的方式实现持久化。即就是将Redis处理的每一个命令都会记录在AOF文件的末尾。如果Redis重启时,可以通过执行AOF文件记录的命令来恢复数据。AOF相比RDB而言速度叫慢,但是可以保证数据的可靠性,几乎不会丢失数据,但是AOF的文件比较大,而且恢复速度比较慢。
RDB和AOF区别

RDB和AOF的区别.jpeg 配图AOF的三种配置策略

配置项刷盘时机优点缺点
Always同步刷盘可靠性高,几乎不会丢失数据性能影响大
everysec (默认)每秒刷盘性能适中最多丢失1秒的数据
no操作系统控制性能最好可靠性较差,可能会丢失大量数据