RDB
RDB:Redis DataBase
在指定时间间隔将内存中的数据集快照写入磁盘中(先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储),实际操作是通过fork一个子进程
优点
- 整个Redis 只包含一个dump.rdb文件,方便持久化
- 容灾性好,方便备份
- 性能最大化,fork一个子线程来完成操作,让主线程继续处理命令,所以是IO最大化。保证Redis 的性能
- 相对于数据大的时候,比AOF的启动效率更高
缺点
- 数据安全性较低,因为RDB 是定时去持久化,如果持久化之间Redis发生故障,会导致,最新的数据丢失
- 由于RBD是通过fork子进程来协助完成数据持久化的,因此如果当数据集较大的时候,可能导致 服务器停止几百毫秒或者更长时间
AOF
AOF: Append Only File
以日志形式来记录服务器的写,删除操作,不会记录查询操作, 以文本的形式记录,可以打卡文件查看到详细的操作
优点
- 数据安全:AOF提供了是3种持久化策略,分别是:每秒同步(因为是异步持久化,所以会出现数据丢失的问题) ,实时同步(每次修改或写的时候同步,相对于每秒同步,效率相对较低,但是数据安全性高),不同步;
- 通过append 模式写文件,即使中途服务器宕机也不会破坏已经存在的内容,可以通过redis-check-aof 工具解决数据一致性的问题
- AOF 机制的rewrite 模式,定期对AOF 文件进行重写,已达到压缩的目的
缺点:
- AOF 文件比RBD 文件大,并且恢复的比较慢
- 数据集大的时候,比RDB 启动的效率低