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读写