《Redis设计与实现》第十一章 AOF持久化

本文深入探讨了Redis中AOF持久化机制的实现细节,包括命令追加、文件写入与同步的过程,以及AOF文件载入和数据还原的方法。同时,文章还介绍了AOF重写的目的和实现方式,旨在帮助读者理解如何通过AOF持久化功能来保障数据的安全性和一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第十一章 AOF持久化

-w774

-w740

11.1 AOF持久化的实现

AOF持久化功能实现分为命令追加、文件写入、文件同步三个步骤。

11.1.1 命令追加

当AOF持久化功能出于打开状态时,服务器执行完一个写命令之后,会以被执行的写命令追加到服务器的aof_buf缓冲区的末尾

11.1.2 AOF文件的写入与同步

Redis的服务器进程就是一个事件循环。
每次结束一个事件循环之前,都会调用flushAppendOnlyFile函数,考虑是否将缓冲区的内容写入和保存到AOF文件里面。

-w789
-w713
AOF三个模式下no最快但是不保证、everysync足够快乐,但是always效率受影响。

11.2 AOF文件载入与数据还原

-w747

11.3 AOF重写

-w742

11.3.1 AOF文件重写的实现

-w731
-w748
就是去除的冗余的命令,让多个push 只保留最终状态。
-w727

11.3.2 AOF后台重写

-w737
为了让重写后数据库保持一致。

设置AOF重写缓冲区。
-w748

11.4 重点回顾

  • AOF 文件通过保存所有修改数据库的写命令请求来记录服务器的数据库状态
  • AOF文件中的所有命令都以Redis命令请求协议的格式保存
  • 命令请求先保存到AOF缓冲区再定期写入并同步到AOF文件
  • appendfsync三个模式性能不同。
  • aof会重新,并保持一致性会有一个aof重写缓冲区。

-w711

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值