Redis 持久化機制(RDB和AOF)

2021-09-04 05:06:41 字數 930 閱讀 5286

一、rdb也叫snapshotting方式

1、機制

以快照的方式將記憶體中的資料寫入二進位制檔案中,在磁碟中會生成乙個.rdb的檔案。這種方式可以設定每個多長時間進行一次快照,即按照一定的策略週期性的持久化。注意:每次都是將記憶體中的資料完整的寫入磁碟,不是增量的更新。它是非同步的。

工作原理簡單介紹一下:當redis需要做持久化時,redis會fork乙個子程序;子程序將資料寫到磁碟上乙個臨時rdb檔案中;當子程序完成寫臨時檔案後,將原來的rdb替換掉,這樣的好處就是可以copy-on-write(實時複製)。

2.存在的問題

如果redis宕機了,最近的資料會丟失。當業務量很大時,丟失的資料會很多。

1.機制

redis每次將寫的命令追加到.aof檔案中,實現了全程持久化。redis重啟後執行.aof檔案進行」重放「恢復資料。

2.存在的問題

因為每次寫操作都要追加,所以會造成檔案中對某一資料的操作好很多條,但其實只是最後一條操作才有用。這樣隨著時間增加,檔案會越來越大。

3.如何解決?

為了壓縮aof持久化檔案,redis提供了bgrewriteaof命令。收到此命令後,redis將使用與快照類似的方式將記憶體中的資料以命令的方式儲存到臨時檔案,最後替換原來的檔案,來控制aof檔案的增長。

三、總結

redis的持久化機制保證了記憶體中的資料同步到磁碟,重啟時能恢復資料庫。

redis之RDB和AOF持久化機制

配置rdb機制的資料持久化,資料檔案是乙個看不懂的二進位制檔案,且配置觸發的時間機制 redis.conf如下 1.配置rdb機制的資料持久化,資料檔案是乙個看不懂的二進位制檔案,且配置觸發的時間機制 vim rdb redis.conf 寫入如下內容 daemonize yes 後台執行 port...

redis持久化(rdb和aof)

rdb redis database 在制定的時間間隔內將記憶體中的資料集快照寫入磁碟 snapshot快照 redis恢復時將快照檔案直接讀到記憶體。rdb儲存的是dump.rdb檔案 在bin 目錄下會看到 redis會單獨建立 fork 乙個子程序來進行持久化,會先將資料寫入到乙個臨時檔案中,...

Redis 持久化方式 RDB

redis持久化資料的兩種方式之一,另外一種是aof。redis會定期儲存資料快照至乙個rbd檔案中,並在啟動時自動載入rdb檔案,恢復之前儲存的資料。自動觸發 可以在redis的配置檔案中進行設定,以達到滿足條件自動觸發rdb備份。其他可能 主從複製的時候 因為要複製給從節點最新資訊,所以也會觸發...