Redis 持久化之AOF

1.是什么

以日志的形式來(lái)記錄每個(gè)寫(xiě)操作(增量保存),將redis執(zhí)行過(guò)的所有寫(xiě)指令記錄下來(lái)(讀操作不記錄),只許追加文件但不可以改寫(xiě)文件,redis啟動(dòng)之初會(huì)讀取該文件重新構(gòu)建數(shù)據(jù),換言之,redis重啟的話(huà)就根據(jù)日志文件的內(nèi)容將寫(xiě)指令從前到后執(zhí)行一次以完成數(shù)據(jù)的恢復(fù)工作。

2.AOF持久化流程

image.png

(1)客戶(hù)端發(fā)送請(qǐng)求(寫(xiě)命令)會(huì)被append追加到AOF緩沖區(qū)內(nèi);
(2)AOF緩沖區(qū)根據(jù)AOF持久化策略[always,everysec,no]將操作sync同步到磁盤(pán)的aof文件中;
(3)aof文件大小超過(guò)重寫(xiě)策略或手動(dòng)重寫(xiě)時(shí),進(jìn)程rewrite重寫(xiě),壓縮aof文件容量;
(4)Redis服務(wù)重啟時(shí),會(huì)重新load加載aof文件中的寫(xiě)操作達(dá)到數(shù)據(jù)恢復(fù)的目的;

3.AOF默認(rèn)不開(kāi)啟

可以在redis.config中配置文件名稱(chēng),默認(rèn)為appendonly.aof
AOF文件的保存路徑,同RDB的路徑一致

4.AOF和RDB同時(shí)開(kāi)啟,redis聽(tīng)誰(shuí)的?

AOF和RDB同時(shí)開(kāi)啟,系統(tǒng)默認(rèn)取AOF的數(shù)據(jù)(數(shù)據(jù)不會(huì)存在丟失)

5.AOF啟動(dòng)/恢復(fù)/修復(fù)

AOF的備份機(jī)制和性能雖然和RDB不同, 但是備份和恢復(fù)的操作同RDB一樣,都是拷貝備份文件,需要恢復(fù)時(shí)再拷貝到Redis工作目錄下

(1)正?;謴?fù):

修改默認(rèn)的appendonly no,改為yes
??將有數(shù)據(jù)的aof文件復(fù)制一份保存到對(duì)應(yīng)目錄(查看目錄:config get dir)

image.png

恢復(fù):重啟redis然后重新加載

(2)異?;謴?fù):
  • 修改默認(rèn)的appendonly no,改為 yes
  • 如遇到AOF文件損壞,通過(guò)\color{red}{ /usr/local/bin/redis-check-aof --fix appendonly.aof}進(jìn)行恢復(fù)
  • 備份被寫(xiě)壞的AOF文件
  • 恢復(fù):重啟redis,然后重新加載

6.AOF同步頻率設(shè)置

appendfsync always:始終同步,每次Redis的寫(xiě)入都會(huì)立刻記入日志;性能較差但數(shù)據(jù)完整性比較好
appendfsync everysec:每秒同步,每秒記入日志一次,如果宕機(jī),本秒的數(shù)據(jù)可能丟失。
appendfsync no:redis不主動(dòng)進(jìn)行同步,把同步時(shí)機(jī)交給操作系統(tǒng)。

————————————————
版權(quán)聲明:本文為CSDN博主「但行益事莫問(wèn)前程」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/javahelpyou/article/details/124056799

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容