redis的持久化

2021-09-30 13:19:07 字數 985 閱讀 9659

該持久化方式實際是在redis內部乙個定時器事件,每隔固定時間去檢查當前資料發生的改變次數與時間是否滿足配置的持久化觸發的條件,如果滿足則通過作業系統fork呼叫來建立出乙個子程序,這個子程序缺省會與父程序共享相同的位址空間,這時就可以通過子程序來遍歷整個記憶體來進行儲存操作,而主程序則仍然可以提供服務,當有寫入時由作業系統按照記憶體頁(page)為單位來進行copy-on-write保證父子程序之間不會互相影響。

該持久化的主要缺點是定時快照只是代表一段時間內的記憶體映像,所以系統重啟會丟失上次快照與重啟之間所有的資料。

aof方式實際類似mysql的基於語句的binlog方式,即每條會使redis記憶體資料發生改變的命令都會追加到乙個log檔案中,也就是說這個log檔案就是redis的持久化資料。

aof的方式的主要缺點是追加log檔案可能導致體積過大,當系統重啟恢復資料時如果是aof的方式則載入資料會非常慢,幾十g的資料可能需要幾小 時才能載入完,當然這個耗時並不是因為磁碟檔案讀取速度慢,而是由於讀取的所有命令都要在記憶體中執行一遍。另外由於每條命令都要寫log,所以使用aof 的方式,redis的讀寫效能也會有所下降。

虛擬記憶體方式是redis來進行使用者空間的資料換入換出的乙個策略,此種方式在實現的效果上比較差,主要問題是**複雜,重啟慢,複製慢等等.

diskstore方式是作者放棄了虛擬記憶體方式後選擇的一種新的實現方式,也就是傳統的b-tree的方式,目前仍在實驗階段,後續是否可用我們可以拭目以待。

當業務不需要資料持久化時,當然關閉所有的持久化方式可以獲得最佳的效能以及最大記憶體的使用量;如果需要使用持久化,根據是否可以容忍重啟丟失部分資料在快照方式與語句追加方式之間選擇其一,不要使用虛擬記憶體以及diskstore方式。目前來說,個人覺得選擇aof的方式是最佳的選擇。

難以取捨的持久化機制主要是快照和aof方式。相比於aof快照的特點是速度快,恢復的速度也快。但是宕機的時候丟失的資料相對多一點。

當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滿足一...