Redis - Redis持久化(RDB+AOF)

回到顶部(go to top)

总结

RDB - Redis DataBase

Redis会单独创建一个子进程,将数据集快照snapshot的方式写入磁盘。会记录 redis 数据库的所有键值对,在某个时间点将数据写入一个临时文件,持久化结束后,用这个临时文件替换上次持久化的文件,可恢复数据

优点:

  • 只有一个文件 dump.rdb,恢复操作简单,容灾性好
  • 性能较高,fork 子进程进行写操作,主进程继续处理命令
  • 大数据集比 AOF 的恢复效率高

缺点:

  • 数据安全性低,RDB 是每间隔一段时间进行持久化,若间隔期间 redis 发生故障,可能会发生数据丢失

 

AOF - Append only file

指所有的命令行(记录每个写操作,不记录读操作)做持久化存储,保存为 appendonly.aof 文件。

优点:

  • 数据安全:aof 持久化可以配置 appendfsync 属性为 always,记录每个命令操作到 aof 文件中一次,但性能最差;
  • 修复机制:即使中途服务器宕机,也可以通过 redis-check-aof 工具解决格式错误问题,但可能会有数据丢失
  • AOF 机制的 rewrite 模式:AOF 文件过度膨胀,导致恢复数据耗时严重。通过rewrite,优化记录,只针对于每个key,生成一条日志

缺点:

  • AOF 的持久化文件比 RDB 大,恢复速度慢
  • AOF的效率也比RDB慢,因此redis默认的配置就是RDB
回到顶部(go to top)

1. RDB (Redis DataBase)

 

 

 

 

 

1.1 RDB 设置

 

 

 

1.2 RDB 触发机制

 

 

 

 

 

1.3 RDB 恢复机制

 

 

 

1.4 RDB 优缺点

 

回到顶部(go to top)

2. AOF (Append Only File)

 

 

 

 

 

2.1 AOF 开启

 

 

 

 

2.2 AOF 修复机制

不是100%数据恢复,而是格式恢复--即将错误aof格式修复成正确的aof格式。可能会有数据的丢失。

 

 

 

 

2.3 AOF Rewrite机制

随着redis的运行,aof会不断膨胀(对于一个key会有多条aof日志),导致通过aof恢复数据时,耗费大量不必要的时间。redis提供的解决方案是aof rewrite。根据db的内容,对于每个key,生成一条日志。aof触发的时机: 

  • 用户调用BGREWRITEAOF命令 
  • aof日志大小超过预设的限额 -- 下图表示:当aof文件100%达到64MB时,才会进行rewrite操作

AOF Rewrite源码分析:https://www.cnblogs.com/xingzc/p/6384663.html

 

 

 

2.4 AOF 优缺点

 

回到顶部(go to top)

3. RDB vs AOF

3.1 同时开启两种持久化,会如何?

 

 

3.2 性能建议

 

posted on   frank_cui  阅读(100)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

levels of contents
点击右上角即可分享
微信分享提示