聊一下Redis持久化RDB和AOF
作者:conan5566
持久化的放到硬盤中,當我們需要這些數據的時候,啟動載入RDB文件,數據將會被存入內存中,其實RDB就是一種快照的方式持久化存儲數據,也可以作為一種復制媒介。
本文轉載自微信公眾號「UP技術控」,作者conan5566。轉載本文請聯系UP技術控公眾號。
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-error yes #bdsave出錯,停止寫入
- rdbcompression yes #采用壓縮位置
- rdbchecksum yes #開啟校驗和
AOF
RDB存在的問題:耗時耗性能,阻塞丟失數據
AOF運行原理:每執行一條命令,就在AOF中增加一條記錄。當需要恢復時,直接執行AOF寫入redis
AOF三種策略
- always(每條命令都把緩沖區fsync到硬盤)
- everysec(每秒刷新一次,每秒吧緩沖區fsync到硬盤)
- no(跟隨操作系統,有操作系統決定,不可控)
AOF重寫配置
- AOF重寫配置
- auto-aof-rewrite-min-size #AOF重寫需要的最小尺寸
- auto-aof-rewrite-percentage #AOF文件增長率
- aof_current_size #統計當前aof文件大小
- aof_base_size #aof上次啟動和重寫的尺寸
區別
總結
AOF是全量備份,RDB是增量備份。
責任編輯:武曉燕
來源:
UP技術控