Redis 持久化機制

2021-09-24 22:02:03 字數 903 閱讀 8349

持久化資料:就是將記憶體中的資料寫入到硬碟裡面,

原因:為了之後重用資料(比如重啟機器、機器故障之後恢復資料),或者是為了防止系統故障而將資料備份到乙個遠端位置

redis通過快照來獲得在某個時間點上記憶體裡面的資料副本。redis建立快照之後,可以對快照進行備份,可以將快照複製到其他伺服器從而建立具有相同資料的伺服器副本(redis主從結構,主要用來提高redis效能),還可以將快照留在原地以便重啟伺服器的時候使用。

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

快照持久化是redis預設採用的持久化方式

rdb缺點:由於rdb是通過fork子程序來協助完成資料持久化工作的,因此,如果當資料集較大時,可能會導致整個伺服器停止服務幾百毫秒,甚至是1秒鐘

開啟aof持久化後每執行一條會更改redis中的資料的命令,redis就會將該命令寫入硬碟中的aof檔案,在redis的配置檔案中存在三種不同的 aof 持久化方式,它們分別是:

aof缺點:對於相同數量的資料集而言,aof檔案通常要大於rdb檔案。rdb 在恢復大資料集時的速度比 aof 的恢復速度要快。

redis 4.0 開始支援 rdb 和 aof 的混合持久化(預設關閉,可以通過配置項 aof-use-rdb-preamble 開啟)。

如果把混合持久化開啟,aof 重寫的時候就直接把 rdb 的內容寫到 aof 檔案開頭。

優點:這樣做的好處是可以結合 rdb 和 aof 的優勢,快速載入同時避免丟失過多的資料。

缺點:aof 裡面的 rdb 部分是壓縮格式不再是 aof 格式,可讀性較差。

Redis的持久化機制

該持久化方式實際是在redis內部乙個定時器事件,每隔固定時間去檢查當前資料發生的改變次數與時間是否滿足配置的持久化觸發的條件,如果滿足則通過作業系統fork呼叫來建立出乙個子程序,這個子程序缺省會與父程序共享相同的位址空間,這時就可以通過子程序來遍歷整個記憶體來進行儲存操作,而主程序則仍然可以提供...

Redis的持久化機制

redis由於支援非常豐富的記憶體資料結構型別,如何把這些複雜的記憶體組織方式持久化到磁碟上是乙個難題,所以redis的持久化方式與傳統資料庫的方式有比較多的差別,redis一共支援四種持久化方式,分別是 在設計思路上,前兩種是基於全部資料都在記憶體中,即小資料量下提供磁碟落地功能,而後兩種方式則是...

Redis持久化機制比對

size large b rdb b size 1.color red 按特定的時間間隔來為資料集做快照 color 2.每次持久化都是將全量資料寫入,而不是增量 3.每次寫入時先將資料寫入臨時檔案再替換掉原來的rdb檔案 b 優點 b 1.rdb是乙個單獨的檔案,方便備份以及災難恢復 2.寫資料的...