Redis进阶知识2:RDB和AOF

一、RDB

RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。主进程是不进行任何IO操作的。

如果需要进行大规模数据恢复,且对于数据恢复的完整性不是非常敏感,那么RDB方式要比AOF方式更加高效。RDB的缺点是最后一次持久化后的数据可能丢失。

RDB保存的文件是dump.rdb,可在redis.conf配置文件中修改。

dbfilename dump.rdb

详细配置参考:Redis进阶知识

持久化触发机制:

  1. 配置文件中save规则满足时
  2. 执行flushall命令
  3. 退出redis

恢复文件:只需将.rdb文件放在redis启动目录即可,redis启动时会自动检查dump.rdb。

优点:

  1. 适合大规模的数据恢复。
  2. 对数据完整性要求不高。

缺点:

  1. 需要一定的时间间隔进程操作,如果redis意外宕机了,最后一次修改的数据就没有了。
  2. fork进程的时候,会占用一定的内存。

二、AOF

AOF持久化以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录。

AOF保存的文件是appendonly.aof,可在redis.conf配置文件中修改。

appendfilename "appendonly.aof" #aof文件名

详细配置参考:Redis进阶知识

持久化触发机制:每一次写、删除操作,都会将操作写入文件。

优点:

  1. 每次修改都同步,保证了文件的完整性。

缺点:

  1. 相对于数据文件来说,aof远远大于rdb,修复的速度也比rdb慢。
  2. AOF运行效率比RDB慢。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。