當前位置: 妍妍網 > 碼農

一文了解Redis的持久化

2024-02-05碼農

RDB

RDB是Redis記憶體到硬碟的快照,用於redis持久化,建立RDB二進制檔,將儲存在記憶體中的數據,持久化的放到硬碟中,當我們需要這些數據的時候,啟動載入RDB檔,數據將會被存入記憶體中,其實RDB就是一種快照的方式持久化儲存數據,也可以作為一種復制媒介。

觸發機制--主要三種方式

  • save 同步命令(會阻塞redis)

  • bgsave 異步命令(fork)

  • 自動

  • #關閉自動保存配置#save 900 1 #900秒 改了一次就自動生成RDB檔#save 300 10 #300秒修改了10次就自動生成RDB檔dbfilename dump-${port}.rdb #rdb檔名dir /bigdiskpath #分盤,rdb檔保存位置stop-writes-on-bgsave-erroryes#bdsave出錯,停止寫入rdbcompression yes#采用壓縮位置rdbchecksum yes#開啟校驗和

    AOF

    RDB存在的問題:耗時耗效能,阻塞遺失數據

    AOF執行原理:每執行一條命令,就在AOF中增加一條記錄。當需要恢復時,直接執行AOF寫入redis

    AOF三種策略

  • always(每條命令都把緩沖區fsync到硬碟)

  • everysec(每秒重新整理一次,每秒吧緩沖區fsync到硬碟)

  • no(跟隨作業系統,有作業系統決定,不可控)

  • AOF重寫配置auto-aof-rewrite-min-size #AOF重寫需要的最小尺寸auto-aof-rewrite-percentage #AOF檔增長率aof_current_size #統計當前aof檔大小aof_base_size #aof上次啟動和重寫的尺寸

    區別


    總結

    AOF 是全量備份,RDB是增量備份。