當前位置:成語大全網 - 新華字典 - redis兩種持久化方式的區別是什麽

redis兩種持久化方式的區別是什麽

redis提供兩種方式進行持久化,壹種是RDB持久化(原理是將Reids在內存中的數據庫記錄定時dump到磁盤上的RDB持久化),另外壹種是AOF(append only file)持久化(原理是將Reids的操作日誌以追加的方式寫入文件)。

RDB持久化是指在指定的時間間隔內將內存中的數據集快照寫入磁盤,實際操作過程是fork壹個子進程,先將數據集寫入臨時文件,寫入成功後,再替換之前的文件,用二進制壓縮存儲。(推薦學習:Redis視頻教程)

AOF持久化以日誌的形式記錄服務器所處理的每壹個寫、刪除操作,查詢操作不會記錄,以文本的方式記錄,可以打開文件看到詳細的操作記錄。

RDB持久化和AOF持久化的區別:

1、存儲數據

RDB持久化保存鍵空間的所有鍵值對(包括過期字典中的數據),並以二進制形式保存,符合rdb文件規範,根據不同數據類型會有不同處理。

AOF持久化保存redis服務器所執行的所有寫命令來記錄數據庫狀態,在寫入之前命令存儲在aof_buf緩沖區。

2、持久化時間選擇

RDB持久化通過conf的save選項設置持久化行為(單位時間內的修改次數)。

AOF持久化通過conf的appendfsync選項設置持久化行為(單位時間內的修改次數)。

3、數據還原

RDB持久化:服務器載入rdb文件,阻塞線程,在載入完成之前不接受任何命令。

AOF持久化:服務器創建不帶網絡連接的偽客戶端,讀取aof文件中的所有命令並執行(redis服務開啟aof持久化在服務器啟動時會選擇aof文件恢復數據庫狀態)

4、過期鍵

RDB持久化在寫入或讀取時會忽略過期鍵

AOF持久化不會忽略過期鍵,在鍵被惰性刪除或定期刪除時向aof文件追加壹條刪除命令

5、文件大小

RDB持久化隨著存儲數據量的變化而變化(根據不同數據類型有不同的數據壓縮優化)

AOF持久化隨著執行命令的增加而增加(通過aof重寫進行優化)

更多redis相關技術知識,請訪問Redis使用入門教程欄目學習!