redis是我們常用的key-value資料庫,其中可持久化的特性也是被各路開發者喜愛。接下來,我們來簡單聊聊redis的兩種持久化機制rdb和aof。
一、rdb
1、rdb持久化是指在指定的時間間隔內將記憶體中的資料集快照寫入磁碟,實際操作過程是fork乙個子程序,先將資料集寫入臨時檔案,寫入成功後,再替換之前的檔案,用二進位制壓縮儲存。rdb是redis預設的持久化方式,會在對應的目錄下生產乙個dump.rdb檔案,重啟會通重載入dump.rdb檔案恢復資料。
2、優點
1)只有乙個檔案dump.rdb,方便持久化;
2) 容災性好,乙個檔案可以儲存到安全的磁碟;
3) 效能最大化,fork子程序來完成寫操作,讓主程序繼續處理命令,所以是io最大化(使用單獨子程序來進行持久化,主程序不會進行任何io操作,保證了redis的高效能) ;
4)如果資料集偏大,rdb的啟動效率會比aof更高。
3、缺點
1)資料安全性低。(rdb是間隔一段時間進行持久化,如果持久化之間redis發生故障,會發生資料丟失。所以這種方式更適合資料要求不是特別嚴格的時候)
2)由於rdb是通過fork子程序來協助完成資料持久化工作的,因此,如果當資料集較大時,可能會導致整個伺服器停止服務幾百毫秒,甚至是1秒鐘。
二、aof
1、aof持久化是以日誌的形式記錄伺服器所處理的每乙個寫、刪除操作,查詢操作不會記錄,以文字的方式記錄,檔案中可以看到詳細的操作記錄。她的出現是為了彌補rdb的不足(資料的不一致性),所以它採用日誌的形式來記錄每個寫操作,並追加到檔案中。redis 重啟的會根據日誌檔案的內容將寫指令從前到後執行一次以完成資料的恢復工作。
2、優點
3)aof機制的rewrite模式。(aof檔案沒被rewrite之前(檔案過大時會對命令進行合併重寫),可以刪除其中的某些命令(比如誤操作的flushall))
3、缺點
1)aof檔案比rdb檔案大,且恢復速度慢;資料集大的時候,比rdb啟動效率低。
2)根據同步策略的不同,aof在執行效率上往往會慢於rdb。
Redis持久化機制!!!了解了解
redis是我們常用的key value資料庫,其中可持久化的特性也是被各路開發者喜愛。接下來,我們來簡單聊聊redis的兩種持久化機制rdb和aof。一 rdb 1 rdb持久化是指在指定的時間間隔內將記憶體中的資料集快照寫入磁碟,實際操作過程是fork乙個子程序,先將資料集寫入臨時檔案,寫入成功...
Redis 持久化機制
持久化資料 就是將記憶體中的資料寫入到硬碟裡面,原因 為了之後重用資料 比如重啟機器 機器故障之後恢復資料 或者是為了防止系統故障而將資料備份到乙個遠端位置 redis通過快照來獲得在某個時間點上記憶體裡面的資料副本。redis建立快照之後,可以對快照進行備份,可以將快照複製到其他伺服器從而建立具有...
Redis的持久化機制
該持久化方式實際是在redis內部乙個定時器事件,每隔固定時間去檢查當前資料發生的改變次數與時間是否滿足配置的持久化觸發的條件,如果滿足則通過作業系統fork呼叫來建立出乙個子程序,這個子程序缺省會與父程序共享相同的位址空間,這時就可以通過子程序來遍歷整個記憶體來進行儲存操作,而主程序則仍然可以提供...