rdb是redis記憶體到硬碟的快照,用於redis持久化,建立rdb二進位制檔案,將儲存在記憶體中的資料,持久化的放到硬碟中,當我們需要這些資料的時候,啟動載入rdb檔案,資料將會被存入記憶體中,其實rdb就是一種快照的方式持久化儲存資料,也可以作為一種複製媒介,這個我們後面在談。
rdb觸發機制--主要三種方式
s**e同步命令
s**e
檔案策略:生成乙個臨時檔案,如果存在老的檔案,將會替換舊檔案
bgs**e 非同步命令
主程序通過fork()函式,建立子程序生成drb檔案,在此期間訪問redis仍然能正常響應
命令s**e
bgs**e
io同步
非同步阻塞
阻塞阻塞(操作不當fork阻塞)
evwnrvboi
優點不額外占用記憶體
不阻塞客戶端命令
缺點阻塞客戶端命令
需要fork,額外消耗記憶體
redis自動生成rdb檔案(不可控)
s**e 900 1 #900秒 改了一次就自動生成rdb檔案
s**e 300 10 #300秒修改了10次就自動生成rdb檔案
redis s**e配置推薦
#關閉自動儲存配置#s**e 900 1 #900秒 改了一次就自動生成rdb檔案#s**e 300 10 #300秒修改了10次就自動生成rdb檔案
dbfilename dump-$.rdb #rdb檔名
dir /bigdiskpath #分盤,rdb檔案儲存位置
stop-writes-on-bgs**e-error yes #bds**e出錯,停止寫入
rdbcompression yes #採用壓縮位置
rdbchecksum yes #開啟校驗和
不容忽視的觸發機制
有時候我們沒有執行s**e bgs**e命令,也沒有開啟自動儲存命令,還是會生成rdb,可能是因為以下原因:
evwnrvboi
aofrdb存在的問題:耗時耗效能,阻塞丟失資料
aof執行原理:每執行一條命令,就在ao中增加一條記錄。當需要恢復時,直接執行aof寫入redis
aof三種策略
程式設計客棧
命令alwww.cppcns.comways
everysec
no優點
不丟失資料
每秒一次
不用管缺點
io開銷大
丟失一秒資料
不可控aof重寫
將過期的,重複的,做一些優化合併
作用:減少磁碟空間占用,加快檔案恢復速度
aof重寫兩種方式:
bgrewriteaof
aof重寫配置
aof重寫配置
auto-aof-rewrite-min-size #aof重寫需要的最小尺寸
auto-aof-rewrite-percentage #aof檔案增長率
aof_current_size #統計當前aof檔案大小
aof_base_size #aof上次啟動和重寫的尺寸
aof配置
rdb和aof的比較
本文標題: redis持久化rdb和aof區別詳解
本文位址:
redis持久化(rdb和aof)
rdb redis database 在制定的時間間隔內將記憶體中的資料集快照寫入磁碟 snapshot快照 redis恢復時將快照檔案直接讀到記憶體。rdb儲存的是dump.rdb檔案 在bin 目錄下會看到 redis會單獨建立 fork 乙個子程序來進行持久化,會先將資料寫入到乙個臨時檔案中,...
redis持久化方案 RDB和AOF
redis持久化主要是做災難恢復,資料恢復 redis持久化 rdb,aof 1.rdb持久化機制,對redis中的資料執行週期性的持久化 每隔指定的時間以快照的形式儲存到檔案當中,儲存的是資料檔案 如果我們想要redis僅僅作為純記憶體的快取來用,那麼可以禁止rdb和aof所有的持久化機制 通過r...
Redis 持久化機制(RDB和AOF)
一 rdb也叫snapshotting方式 1 機制 以快照的方式將記憶體中的資料寫入二進位制檔案中,在磁碟中會生成乙個.rdb的檔案。這種方式可以設定每個多長時間進行一次快照,即按照一定的策略週期性的持久化。注意 每次都是將記憶體中的資料完整的寫入磁碟,不是增量的更新。它是非同步的。工作原理簡單介...