《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

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