redis 的持久化

RDB持久化

redis的RDB持久話把當(dāng)前進(jìn)程數(shù)據(jù)生成快照(.rdb)文件保存到硬盤(pán)的過(guò)程。有手動(dòng)和和自動(dòng)兩種觸發(fā)方式。
save命令:阻塞當(dāng)前redis,直到RDB持久化過(guò)程完成為止,若內(nèi)存實(shí)力比較大會(huì)造成長(zhǎng)時(shí)間阻塞。
bgsave命令:redis進(jìn)程執(zhí)行fork操作創(chuàng)建子線程,由子線程完成持久化,阻塞時(shí)間很短(微秒級(jí)),在執(zhí)行redis-cli shutdown關(guān)閉redis服務(wù)時(shí),如果沒(méi)開(kāi)AOF持久化自動(dòng)執(zhí)行bgsave.

bgsave執(zhí)行流程:

image.png

RDB文件的操作

命令: config set dir /usr/local  //設(shè)置rdb文件保存路徑
備份 : bgsave
恢復(fù):將生成的dump.rdb文件放到redis 安裝目錄與redis.conf同級(jí)重啟redis

RDB文件的優(yōu)缺點(diǎn)

優(yōu)點(diǎn):

  1. 壓縮后的二進(jìn)制文件適用于備份,全量復(fù)制,災(zāi)難恢復(fù)
  2. RDB的恢復(fù)速度快于AOF方式

缺點(diǎn):

  1. 無(wú)法做到實(shí)時(shí)持久化每次都要?jiǎng)?chuàng)建子進(jìn)程,頻繁操作成本過(guò)高
  2. 備份后的rdb文件會(huì)存在老版本不兼容新版本rdb文件的問(wèn)題

AOF持久化

AOF持久化流程:
  1. 所有的寫(xiě)入命令會(huì)append追加到aof_buf緩沖區(qū)中
  2. AOF緩沖去向硬盤(pán)做sync同步
  3. AOF文件越來(lái)越大,還需要定時(shí)對(duì)AOF文件rewrite重寫(xiě)達(dá)到壓縮
  4. 當(dāng)redis服務(wù)重啟時(shí),可load加載AOF文件進(jìn)行恢復(fù)。
AOF相關(guān)配置:
appendonly yes     //啟用aof持久化方式
appendfsync always //每收到寫(xiě)命令就立即強(qiáng)制寫(xiě)入磁盤(pán),最慢的,但是保證完全的持久化,不推薦使用
appendfsync everysec //每秒強(qiáng)制寫(xiě)入磁盤(pán)一次,性能和持久化方面做了折中,推薦
auto-aof-rewrite-percentage 100  //aof文件大小比起上次重寫(xiě)時(shí)的大小,增長(zhǎng)率100%時(shí),重寫(xiě)
auto-aof-rewrite-min-size 64mb   //aof文件,至少超過(guò)64M時(shí),重寫(xiě)
?著作權(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)容