RDB
概念
- 在指定的时间间隔内,将内存的数据快照写入磁盘
- 实际过程是fork一个子进程,将数据集写入临时文件
- 写入成功后再替换之前的文件,用二进压缩存储、
优点
- 整个Redis数据库只包含一个文件dump.rdb,方便持久化
- 容灾性好,方便备份
- 性能最大化,fork子进程来完成写操作,让主进程处理命令
- 相对于数据集大时,比AOF的启动效率更高
缺点
- 数据安全性低,RDB是间隔一段时间进行持久化
- 如果持久化之间Redis发生故障,会发生数据丢失
- 由于RDB是通过fork子进程来协助完成数据持久化工作的
- 如果数据集过大时,可能会导致整个服务器停止几百毫秒,甚至一分钟
AOF
概念
- 以日志的形式记录服务器所在的每一个写,删除操作
- 查询操作不会记录,以文本的方式记录
- 可以打开文件看到详细的操作记录
优点
- 数据安全,Redis中提供了三种同步策略,每秒同步,每修改同步和不同步
- 通过append模式写文件,即使中途服务宕机也不会破坏已经存在的内容
- AOF机制的Rewrite模式,定期对AOF文件进行重写,达到压缩的目的
缺点
- AOF文件比RDB文件大,且回复速度慢
- 数据集大的时候,比RDB启动效率低
- 运行效率没有RDB高