Redis持久化RDB和AOF區(qū)別詳解
RDB是Redis內(nèi)存到硬盤的快照,用于redis持久化,創(chuàng)建RDB二進制文件,將存儲在內(nèi)存中的數(shù)據(jù),持久化的放到硬盤中,當我們需要這些數(shù)據(jù)的時候,啟動載入RDB文件,數(shù)據(jù)將會被存入內(nèi)存中,其實RDB就是一種快照的方式持久化存儲數(shù)據(jù),也可以作為一種復制媒介,這個我們后面在談。
RDB
觸發(fā)機制--主要三種方式
- save 同步命令(會阻塞redis)
- bgsave 異步命令(fork)
- 自動
Save同步命令
save
文件策略:生成一個臨時文件,如果存在老的文件,將會替換舊文件

bgsave 異步命令
主進程通過fork()函數(shù),創(chuàng)建子進程生成DRB文件,在此期間訪問redis仍然能正常響應(yīng)

| 命令 | save | bgsave |
| IO | 同步 | 異步 |
| 阻塞 | 阻塞 | 阻塞(操作不當fork阻塞) |
| 優(yōu)點 | 不額外占用內(nèi)存 | 不阻塞客戶端命令 |
| 缺點 | 阻塞客戶端命令 | 需要fork,額外消耗內(nèi)存 |
redis自動生成RDB文件(不可控)
save 900 1 #900秒 改了一次就自動生成RDB文件
save 300 10 #300秒修改了10次就自動生成RDB文件
redis save配置推薦
#關(guān)閉自動保存配置#save 900 1 #900秒 改了一次就自動生成RDB文件#save 300 10 #300秒修改了10次就自動生成RDB文件
dbfilename dump-${port}.rdb #rdb文件名
dir /bigdiskpath #分盤,rdb文件保存位置
stop-writes-on-bgsave-error yes #bdsave出錯,停止寫入
rdbcompression yes #采用壓縮位置
rdbchecksum yes #開啟校驗和
不容忽視的觸發(fā)機制
有時候我們沒有執(zhí)行save bgsave命令,也沒有開啟自動保存命令,還是會生成RDB,可能是因為以下原因:
- 全量復制
- debug reload
- shutdown
AOF
RDB存在的問題:耗時耗性能,阻塞丟失數(shù)據(jù)
AOF運行原理:每執(zhí)行一條命令,就在AOF中增加一條記錄。當需要恢復時,直接執(zhí)行AOF寫入redis
AOF三種策略
- always(每條命令都把緩沖區(qū)fsync到硬盤)
- everysec(每秒刷新一次,每秒吧緩沖區(qū)fsync到硬盤)
- no(跟隨操作系統(tǒng),有操作系統(tǒng)決定,不可控)
| 命令 | always | everysec | no |
| 優(yōu)點 | 不丟失數(shù)據(jù) | 每秒一次 | 不用管 |
| 缺點 | IO開銷大 | 丟失一秒數(shù)據(jù) | 不可控 |
AOF重寫
將過期的,重復的,做一些優(yōu)化合并
作用:減少磁盤空間占用,加快文件恢復速度

AOF重寫兩種方式:
bgrewriteaof
aof重寫配置

AOF重寫配置
auto-aof-rewrite-min-size #AOF重寫需要的最小尺寸
auto-aof-rewrite-percentage #AOF文件增長率
aof_current_size #統(tǒng)計當前aof文件大小
aof_base_size #aof上次啟動和重寫的尺寸

AOF配置

RDB和AOF的比較

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Redis緩存數(shù)據(jù)庫表(列單獨緩存)的示例代碼
在Redis中緩存數(shù)據(jù)庫表數(shù)據(jù),而不使用JSON結(jié)構(gòu)來表示value,通常意味著我們會將數(shù)據(jù)庫表的每一行數(shù)據(jù)映射為Redis中的一個或多個鍵值對,這篇文章主要介紹了Redis緩存數(shù)據(jù)庫表(列單獨緩存),需要的朋友可以參考下2024-03-03
詳解使用Redis SETNX 命令實現(xiàn)分布式鎖
本篇文章主要介紹了詳解使用Redis SETNX 命令實現(xiàn)分布式鎖,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01
詳解redis分布式鎖(優(yōu)化redis分布式鎖的過程及Redisson使用)
在分布式的開發(fā)中,以電商庫存的更新功能進行講解,在實際的應(yīng)用中相同功能的消費者是有多個的,這篇文章主要介紹了redis分布式鎖詳解(優(yōu)化redis分布式鎖的過程及Redisson使用),需要的朋友可以參考下2021-11-11

