RDB
RDB是Redis記憶體到硬碟的快照,用於redis持久化,建立RDB二進制檔,將儲存在記憶體中的數據,持久化的放到硬碟中,當我們需要這些數據的時候,啟動載入RDB檔,數據將會被存入記憶體中,其實RDB就是一種快照的方式持久化儲存數據,也可以作為一種復制媒介。
觸發機制--主要三種方式
save 同步命令(會阻塞redis)
bgsave 異步命令(fork)
自動
#關閉自動保存配置#save 900 1 #900秒 改了一次就自動生成RDB檔#save 300 10 #300秒修改了10次就自動生成RDB檔
dbfilename dump-${port}.rdb #rdb檔名
dir /bigdiskpath #分盤,rdb檔保存位置
stop-writes-on-bgsave-erroryes#bdsave出錯,停止寫入
rdbcompression yes#采用壓縮位置
rdbchecksum yes#開啟校驗和
AOF
RDB存在的問題:耗時耗效能,阻塞遺失數據
AOF執行原理:每執行一條命令,就在AOF中增加一條記錄。當需要恢復時,直接執行AOF寫入redis
AOF三種策略
always(每條命令都把緩沖區fsync到硬碟)
everysec(每秒重新整理一次,每秒吧緩沖區fsync到硬碟)
no(跟隨作業系統,有作業系統決定,不可控)
AOF重寫配置
auto-aof-rewrite-min-size #AOF重寫需要的最小尺寸
auto-aof-rewrite-percentage #AOF檔增長率
aof_current_size #統計當前aof檔大小
aof_base_size #aof上次啟動和重寫的尺寸
區別
總結
AOF 是全量備份,RDB是增量備份。