第十一章 AOF持久化
11.1 AOF持久化的實現
AOF持久化功能實現分爲命令追加、文件寫入、文件同步三個步驟。
11.1.1 命令追加
當AOF持久化功能出於打開狀態時,服務器執行完一個寫命令之後,會以被執行的寫命令追加到服務器的aof_buf
緩衝區的末尾
11.1.2 AOF文件的寫入與同步
Redis的服務器進程就是一個事件循環。
每次結束一個事件循環之前,都會調用flushAppendOnlyFile
函數,考慮是否將緩衝區的內容寫入和保存到AOF文件裏面。
AOF三個模式下no最快但是不保證、everysync足夠快樂,但是always效率受影響。
11.2 AOF文件載入與數據還原
11.3 AOF重寫
11.3.1 AOF文件重寫的實現
就是去除的冗餘的命令,讓多個push 只保留最終狀態。
11.3.2 AOF後臺重寫
爲了讓重寫後數據庫保持一致。
設置AOF重寫緩衝區。
11.4 重點回顧
- AOF 文件通過保存所有修改數據庫的寫命令請求來記錄服務器的數據庫狀態
- AOF文件中的所有命令都以Redis命令請求協議的格式保存
- 命令請求先保存到AOF緩衝區再定期寫入並同步到AOF文件
- appendfsync三個模式性能不同。
- aof會重新,並保持一致性會有一個aof重寫緩衝區。