溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Redis持久化RDB和AOF的區(qū)別有什么

發(fā)布時(shí)間:2020-10-26 14:41:21 來源:億速云 閱讀:149 作者:Leah 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)Redis持久化RDB和AOF的區(qū)別有什么,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

RDB是Redis內(nèi)存到硬盤的快照,用于redis持久化,創(chuàng)建RDB二進(jìn)制文件,將存儲在內(nèi)存中的數(shù)據(jù),持久化的放到硬盤中,當(dāng)我們需要這些數(shù)據(jù)的時(shí)候,啟動載入RDB文件,數(shù)據(jù)將會被存入內(nèi)存中,其實(shí)RDB就是一種快照的方式持久化存儲數(shù)據(jù),也可以作為一種復(fù)制媒介,這個(gè)我們后面在談。

RDB

觸發(fā)機(jī)制--主要三種方式

  • save 同步命令(會阻塞redis)
  • bgsave 異步命令(fork)
  • 自動

Save同步命令

save

文件策略:生成一個(gè)臨時(shí)文件,如果存在老的文件,將會替換舊文件

Redis持久化RDB和AOF的區(qū)別有什么

bgsave 異步命令

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

Redis持久化RDB和AOF的區(qū)別有什么

命令savebgsave
IO同步異步
阻塞阻塞阻塞(操作不當(dāng)fork阻塞)
優(yōu)點(diǎn)不額外占用內(nèi)存不阻塞客戶端命令
缺點(diǎn)阻塞客戶端命令需要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出錯(cuò),停止寫入
rdbcompression yes           #采用壓縮位置
rdbchecksum yes            #開啟校驗(yàn)和

不容忽視的觸發(fā)機(jī)制

有時(shí)候我們沒有執(zhí)行save bgsave命令,也沒有開啟自動保存命令,還是會生成RDB,可能是因?yàn)橐韵略颍?/p>

  • 全量復(fù)制
  • debug reload
  • shutdown
     

AOF

RDB存在的問題:耗時(shí)耗性能,阻塞丟失數(shù)據(jù)

AOF運(yùn)行原理:每執(zhí)行一條命令,就在AOF中增加一條記錄。當(dāng)需要恢復(fù)時(shí),直接執(zhí)行AOF寫入redis

AOF三種策略

  • always(每條命令都把緩沖區(qū)fsync到硬盤)
  • everysec(每秒刷新一次,每秒吧緩沖區(qū)fsync到硬盤)
  • no(跟隨操作系統(tǒng),有操作系統(tǒng)決定,不可控)
命令alwayseverysecno
優(yōu)點(diǎn)不丟失數(shù)據(jù)每秒一次不用管
缺點(diǎn)IO開銷大丟失一秒數(shù)據(jù)不可控

AOF重寫

將過期的,重復(fù)的,做一些優(yōu)化合并

作用:減少磁盤空間占用,加快文件恢復(fù)速度

Redis持久化RDB和AOF的區(qū)別有什么

AOF重寫兩種方式:

bgrewriteaof

aof重寫配置

Redis持久化RDB和AOF的區(qū)別有什么

AOF重寫配置

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

Redis持久化RDB和AOF的區(qū)別有什么

AOF配置

Redis持久化RDB和AOF的區(qū)別有什么

RDB和AOF的比較

Redis持久化RDB和AOF的區(qū)別有什么

關(guān)于Redis持久化RDB和AOF的區(qū)別有什么就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI