Redis持久化RDB和AOF區別詳解

2022-09-21 10:18:09 字數 1629 閱讀 2990

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的檔案。這種方式可以設定每個多長時間進行一次快照,即按照一定的策略週期性的持久化。注意 每次都是將記憶體中的資料完整的寫入磁碟,不是增量的更新。它是非同步的。工作原理簡單介...