Redis的持久化

2021-10-22 18:04:18 字數 1721 閱讀 1780

redis是記憶體資料庫,如果不將記憶體中的資料庫狀態儲存到磁碟,那麼一旦伺服器程序退出,伺服器中的資料庫狀態也會消失。所以redis提供了持久化功能!

什麼是rdb?

在指定的時間間隔內將記憶體中的資料集快照寫入磁碟,也就是行話講的snapshot快照,它恢復時是將快照檔案直接讀到記憶體裡。

redis會單獨建立 (fork )乙個子程序來進行持久化,會先將資料寫入到乙個臨時檔案中,待持久化過程都結束了,再用這個臨時檔案替換上次持久化好的檔案。整個過程中,主程序是不進行任何io操作的。這就確保了極高的效能。如果需要進行大規模資料的恢復,且對於資料恢復的完整性不是非常敏感,那rdb方式要比aof方式更加的高效。rdb的缺點是最後一次持久化後的資料可能丟失。

redis預設的就是rdb,一般情況下不需要修改配置

rdb儲存的檔案是dump.rdb,是在我們的配置檔案中快照中進行配置的!

生產環境中,一般會將這個檔案進行備份

觸發機制

備份會自動生成乙個dump.rdb檔案

如何恢復rdb檔案

只需要將rdb檔案放在我們redis啟動目錄就可以,redis啟動的時候會自動檢查dump.rdb 恢復其中的資料

如何檢視需要存放的位置?

缺點 是什麼?

將我們的所有命令都記錄下來,history,恢復的時候就把這個檔案全部在執行一遍

以日誌的形式來記錄每個寫操作,將redis執行過的所有指令記錄下來(讀操作不記錄),只許追加檔案但不可以改寫檔案,redis啟動時會讀取該檔案重新構建資料,換言之,redis重啟的話就根據日誌檔案的內容將寫指令從前到後執行一次以完成資料的恢復工作

配置檔案詳解

錯位修復

如果這個aof檔案有錯位,這時候redis是啟動不起來的嗎,我們需要修復這個aof檔案

如果檔案正常,重啟就可以直接恢復了!優點

缺點①rdb持久化方式能夠在指定的時間間隔內對你的資料進行快照儲存

②aof持久化方式記錄每次對伺服器寫的操作,當伺服器重啟的時候會重新執行這些命令來恢復原始的資料,aof命令以redis協議追加儲存每次寫的操作到檔案末尾,redis還能對aof檔案進行後台重寫,使得aof檔案的體積不至於過大

③只做快取,如果你只希望你的資料在伺服器執行的時候存在,你也可以不使用任何持久化

④同時開始兩種持久化方式

⑤效能建議

redis持久化 AOF持久化

1.aof持久化原理 aof持久化會將被執行的寫命令寫到aof檔案的末尾。在恢復的時候,redis只要從頭到尾重新執行一次aof檔案包含的所有寫命令 2.配置選項 固態硬碟禁用always選項,在某些情況頻繁讀寫會大大降低固態硬碟的壽命 4.aof檔案的重寫和壓縮 aof檔案裡面記錄了所有的命令而不...

Redis的持久化

我們都知道,redis的資料都是儲存在記憶體裡面的,導致了redis有如下特點 1.由於記憶體的容量較小,並且速度很快,所以redis相對於mysql orcle等資料庫相比,儲存的容量較小,但是io速度特別快。2.由於記憶體的臨時儲存性,在機器斷電之後記憶體裡的內容將會丟失,若redis沒有持久化...

redis的持久化

redis有兩種持久化策略 rdb 是redis的預設持久化級制。相當於照快照,儲存的是一種狀態。優點 快照速度極快 還原資料速度極快 適用於災難備份 缺點 小記憶體機器不適合,適用於記憶體充裕的計算機 rdb機制符合要求就會找快照 隨時啟動,會突然的占用一部分系統資源 伺服器正常關閉 key滿足一...