Redis持久化的幾種方式 RDB深入解析

2025-07-05 01:25:21 字數 1841 閱讀 1970

redis的持久化機制 (rdb&aof&混合模式)

1樓:張三**

rdb(redis database,快照方式)是指將所有的操作命令,以文字的形式追加到檔案中。

rdb rdb 預設的儲存檔案為 ,優點是以二進位儲存的,因此佔用的空間更小、資料儲存更緊湊,並且與 aof 相比,rdb 具備更快的重啟恢復能力

aof 並且 aof 並不是以二進位儲存的,所以它的儲存資訊更易懂。缺點是佔用空間大重啟之後的資料恢復速度比較慢

混合 在 redis 就推出了混合持久化的功能。redis 混合持久化的儲存模式是,開始的資料以 rdb 的格式進行儲存,因此只會佔用少量的空間,並且之後的命令會以 aof 的方式進行資料追加,這樣就可以減低資料丟失的風險,同時可以提高資料恢復的速度。

fork redis會單獨建立(fork)乙個子程序來進行持久化,會先將資料寫入到乙個臨時檔案中,待持久化過程都結束了,再用這個臨時檔案替換上次持久化好的檔案。fork的作用是複製乙個與當前程序一樣的程序。新程序的所有資料(變數、環境變數、程式計數器等)數值都和原程序一致,但是是乙個全新的程序,遲滾明並作為原程序的子程序。

aof採用檔案追加方式,檔案會越來越大為避免出現此種情況,新增了重寫機制,當aof檔案的大小超過所設定的閾值時( 預設值 64m ),redis就會啟動aof檔案的內容壓縮,只保留可以恢復資料的最小指令集。redis 會fork出一條新程序來將檔案重寫rewrite(也是先寫臨時檔案最後再rename),遍歷新程序的記憶體中資料,每條記碼告錄有一條的set語句。重寫aof檔案的操作,並沒有讀取舊的aof檔案, 而是將整個記憶體中的資料庫內容用命令的方式重寫了乙個新的aof檔案,這點和快照有點類似。

redis的 rdb 和 aof 持久化的區別

2樓:老男孩教育

redis中的資料是儲存在計算機記憶體中的,如果我們不進行配置,就會出現重啟redis後資料丟失的情況,這裡就需要redis中的持久化技術,它是將資料儲存到磁碟中的,當redis重啟後仍可以從磁碟中獲取資料,從而達到持久化的效果。

rdb和aof有什麼區別呢?

rdb持久化是在指定的時間間隔內,將記憶體中的資料集快照寫入磁碟,實際操作過程是有乙個fork子程序,先將資料集寫入臨時檔案中,寫入成功後再替換之前的檔案,用二進位壓縮儲存。

而aof持久化是以日誌的形式記錄在伺服器所處理的每乙個寫、刪操作,查詢操作不會被記錄,以文字的方式記錄,可以開啟檔案看到詳細的操作記錄。

rdb的優點在於它的速度比較快,而且儲存的是乙個二進位檔案,傳輸起來較方便;而缺點是rdb無法保證資料的絕對安全,有時候就是1秒也會造成很大的資料丟失。

aof的優點在於比rdb更安全,一般不會出現資料丟失的現象,就算出現了數量也不會太大,當然了,官方是推薦同時開啟aof和rdb的;而缺點是aof持久化的速度相比rdb要慢,儲存的是乙個文字檔案,到了後期檔案會比較大,傳輸困難。

需要注意的是,在重啟redis之後,需要載入乙個持久化檔案,有限會選擇aof檔案,如果先開啟了rdb再開啟aof,rdb先執行了持久化,那rdb檔案中的內容會被aof覆蓋掉。

3樓:魯步冷雁

當滿足條件時,redis單獨會fork(建立)乙個新的執行緒,會先將記憶體中的資料寫入到乙個臨時檔案中,待持久化過程都結束了,再用這個臨時檔案替換上次已經持久化好了的檔案,整個過程中,主程序是不進行任何io操作的,確保了極高的效能此時的主進。

php持久化連線和非持久化連線的區別

php紅連線mysql的 函式為 mysql connect 和 mysql pconnect mysql connect 非持久化連線 mysql pconnect 持久化連線 兩者區別 簡單的來說mysql pconnect是用來在php與mysql間建立一條持續連線,一般php的執行模式是指令...

獅子的捕獵方式有幾種,獅子的捕獵方式有幾種?

獅子的捕獵方式主要有兩種 個體捕獵和群體捕獵。對付小型獵物,獅子常常是單獨捕獵。對付大型的獵物常常是群體捕獵。捕獵特點 因為獅子是短跑高手,長跑遜色。所以基本上採取伏擊戰術。伏擊的地點也是很有講究。最佳的位置是水塘邊,這是動物們最常出現的地方,酷熱的非洲,水是珍貴必須的。如果乙個獅群控制的領地擁有水...

上籃的方式,上籃共有幾種方式

看nba就知道上籃方式千奇百怪,唯一的目的只是進球,所以最穩妥的還是傳統的挑球上籃。說說我上籃的經驗吧 1.別玩花俏的動作,3大步時雙手抓球 2.不要緊張,假如你把人過了就不要怕被蓋帽而太快出手,按正常節奏上籃 3.多練習,從3分線外0度45度。180度角5點練習上籃 我們籃球課訓練就這樣 4.靠近...