redis AOF

課程筆記 課程是慕課網(wǎng)的https://coding.imooc.com/class/151.html

一、AOF同步三種策略

  1. always:每執(zhí)行一條命令,就會(huì)執(zhí)行一次fsync命令將緩沖區(qū)的數(shù)據(jù)寫(xiě)入硬盤(pán),IO開(kāi)銷(xiāo)較大
  2. everysec:每一秒執(zhí)行一次fsync命令將緩沖區(qū)的數(shù)據(jù)寫(xiě)入硬盤(pán),所以可能會(huì)丟失一秒的數(shù)據(jù)(默認(rèn)配置)
  3. no:根據(jù)操作系統(tǒng)堅(jiān)定使用那種策略,所以不可控

二、AOF重寫(xiě)

原生AOF命令 AOF重寫(xiě)
set hello world
set hello java
set hello haha
set hello haha
incr couter
incr couter
set couter 2
rpush mylist a
rpush mylist b
rpush mylist c
rpush mylist a b c

作用:把過(guò)期的、沒(méi)用的、重復(fù)的以及可優(yōu)化的命令,進(jìn)行化簡(jiǎn)。

  • 減少硬盤(pán)占用量
  • 加速恢復(fù)速度

實(shí)現(xiàn)方式:

  1. bgrewriteaof命令
    命令執(zhí)行過(guò)程

    注:AOF重寫(xiě)是將redis在內(nèi)存中的數(shù)據(jù)進(jìn)行回朔生成新的AOF文件,而不是重寫(xiě)AOF文件生成新的AOF文件去替換。
  2. AOF重寫(xiě)配置
    1. auto-aof-rewrite-percentage 100 AOF文件增長(zhǎng)率
    2. auto-aof-rewrite-min-size 64mb AOF重寫(xiě)需要的尺寸

自動(dòng)觸發(fā)重寫(xiě)需要:

  • aof_current_size > auto-aof-rewrite-min-size
  • (aof_current_size - aof_base_size> auto-aof-rewrite-percentage)或(aof_base_size > auto-aof-rewrite-percentage)

注:
1. aof_current_sizeAOF當(dāng)前尺寸(單位:字節(jié))
2. aof_base_sizeAOF上次啟動(dòng)和重寫(xiě)的尺寸(單位:字節(jié))
3. aof_current_sizeaof_base_size在redis客戶端使用info命令查看,如果看不到可以檢查一下redis.confappendonly是不是yes

三、AOF配置

appendonly yes #打開(kāi)AOF 默認(rèn)是no
appendfilename "appendonly-${port}.aof" #指定AOF文件的名稱 可用端口作為區(qū)分
appendfsync everysec #指定AOF同步的策略
dir ./ #指定AOF文件的目錄 其實(shí)指定了許多文件的目錄
aof-load-truncated yes # 重啟或加載的時(shí)候 發(fā)現(xiàn)AOF文件錯(cuò)誤時(shí),是否忽略

no-appendfsync-on-rewrite yes 在執(zhí)行AOF重寫(xiě)的時(shí)候是否關(guān)閉同步執(zhí)行AOF操作:是的
作用:執(zhí)行AOF重寫(xiě)的時(shí)候,會(huì)操作磁盤(pán)寫(xiě)數(shù)據(jù),而AOF也是操作磁盤(pán)寫(xiě)數(shù)據(jù)。重寫(xiě)的時(shí)候會(huì)涉及大量磁盤(pán)操作,造成主線程阻塞。所以需要no-appendfsync-on-rewrite。
說(shuō)明:

  • 配置為no: 無(wú)法忍受數(shù)據(jù)丟失。相當(dāng)于appendonly no 在重寫(xiě)的時(shí)候,不執(zhí)行AOF操作,如果此時(shí)redis掛掉,就會(huì)丟失數(shù)據(jù)。
  • 配置為yes: 無(wú)法忍受性能差,可以允許少量數(shù)據(jù)丟失。
最后編輯于
?著作權(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)容