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

第十一章 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章