分类
RDB
特点
在指定的时间间隔内将内存中的数据快照写入磁盘,也就是行话2将的Snapshot快照,它回复时是将快照文件直接读到内存里
备份如何执行
- 备份时会单独创建(fork)一个进程来持久化,会先将数据写入一个临时文件中,再做全量替换
- 整个过程中,主进程是不进行任何IO操作的,确保了极高的性能。
- 如果需要进行大规模数据的回复,且对数据回复的完整性不是特别的敏感,那么RDB比AOF更加高效
- 最后一次持久化后的数据可能丢失
优点
节省磁盘空间,恢复速度快
缺点
- 虽然RDB在fork时使用了写时拷贝结束,但是如果数据庞大时还是比较耗费性能的
- 在备份周期在一定间隔时间做一次备份,如果Redis意外down掉的话,就会丢失最后一次快照的所有修改
AOF
备份过程
- 以日志的形式来记录每个操作,只追加文件但不改写文件
优点
- 备份机制更稳健,丢失数据概率更低
- 可读的日志文本,通过操作AOP文件,可以处理误操作
缺点
- 比RDB占用更多的磁盘空间
- 恢复速度更慢
- 每次读写都同步的话,有一定性能压力
- 存在个别BUG,造成恢复不能