Redis持久化机制

95 阅读1分钟

RDB

  • RDB 持久化 RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘,也是默认的持久化方式
  • save 900 1 #900秒内如果超过1个key被修改,则发起快照保存
  • save 300 10 #300秒内如超过10个key被修改,则发起快照保存
  • save 60 10000

优点

  • 数据库只包含一个文件,对于文件备份有好处
  • 对于文件恢复也有好处
  • 数据集很大,启动效率相比于aof更高

缺点

  • 做快照之前的数据会丢失
  • 数据集合很大的话,会占用服务器的时间

AOF

  • AOF 持久化 aof是redis的一种记录数据库写操作的持久化方案,他会忠实的记录所有的写操作,并且以redis协议的格式存储在一个.aof文件中,在重启redis的时候,redis可以根据.aof文件的内容来恢复数据集
  • appendfsync always //收到写命令就立即写入到磁盘,效率最慢,但是保证完全的持久化
  • appendfsync everysec //每秒钟写入磁盘一次,在性能和持久化方面做了很好的折中 
  • appendfsync no //完全依赖os 性能最好 持久化没保证

优点

  • 数据安全和持久会更高
  • redis-check-aof会修复数据

缺点

  • aof的文件更大
  • 恢复速度比较满
  • 运行效率慢