首頁 >資料庫 >Redis >redis兩種持久化方式的差別是什麼

redis兩種持久化方式的差別是什麼

青灯夜游
青灯夜游原創
2019-06-06 15:04:565104瀏覽

redis提供兩種方式進行持久化,一種是RDB持久化(原理是將Reids在記憶體中的資料庫記錄定時dump到磁碟上的RDB持久化),另外一種是AOF(append only file)持久化(原理是將Reids的操作日誌以追加的方式寫入檔案)。

redis兩種持久化方式的差別是什麼

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使用入門教學欄位學習!

以上是redis兩種持久化方式的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn