redis 两种持久化策略 RDB&&AOF
RDB
- 全称为redisDB
- rdb是定时保存快照
备份方式
阻塞方式(一般不用,除非停机维护的场景)
save;#阻塞redis 进行备份
异步方式
bgsave; # 创建子备份异步备份
- 可以命令方式也可以在配置文件中配置bgsave 规则
实现逻辑
- 比较简单fork 子进程 就是定时对全盘进行复制到快照中。
缺点
- 因为是定时备份,会存在一部分丢数据的可能性 时点与时点之间
- 不支持拉链 只有一个dmp.rdb
优点
- 恢复的速度相对快
AOF
- 特点是只会追加不会修改
- 他会记录所有redis 的写操作到文件中
redis4.0 优化
- redis 4.0 之前对于重复的数据的操作,aof 日志里只会保留最新对某个key 的操作,比如set 一个字段10次 他只会留下最后的一条记录。
- 4.0后 会把老的数据 rdb到aof文件中,并且将增量的指令写入,利用了rdb的恢复快,并且利用了aof 数据完整性 两个优点。
优点
- 丢失数据相对比较少
- rdb 和 aof 可以同时开启,如果开启了aof 只会用aof 做恢复
- redis4.0后 会有混合模式 先把rdb 恢复回去,再把rdb 恢复之后事件点的aof 做恢复,以提高性能。
缺点
- 恢复时候慢
- 4.0后混合模式有优化该能力
关于io
- 由于io 时会消耗性能所以会存在如下io规则。
- redis io读写