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区别
配图AOF的三种配置策略
配置项 | 刷盘时机 | 优点 | 缺点 |
---|---|---|---|
Always | 同步刷盘 | 可靠性高,几乎不会丢失数据 | 性能影响大 |
everysec (默认) | 每秒刷盘 | 性能适中 | 最多丢失1秒的数据 |
no | 操作系统控制 | 性能最好 | 可靠性较差,可能会丢失大量数据 |