聊一下Redis持久化RDB和AOF
本文轉載自微信公眾號「UP技術控」,作者conan5566。轉載本文請聯(lián)系UP技術控公眾號。
RDB
RDB是Redis內存到硬盤的快照,用于redis持久化,創(chuàng)建RDB二進制文件,將存儲在內存中的數(shù)據(jù),持久化的放到硬盤中,當我們需要這些數(shù)據(jù)的時候,啟動載入RDB文件,數(shù)據(jù)將會被存入內存中,其實RDB就是一種快照的方式持久化存儲數(shù)據(jù),也可以作為一種復制媒介。
觸發(fā)機制--主要三種方式
- 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存在的問題:耗時耗性能,阻塞丟失數(shù)據(jù)
AOF運行原理:每執(zhí)行一條命令,就在AOF中增加一條記錄。當需要恢復時,直接執(zhí)行AOF寫入redis
AOF三種策略
- always(每條命令都把緩沖區(qū)fsync到硬盤)
- everysec(每秒刷新一次,每秒吧緩沖區(qū)fsync到硬盤)
- no(跟隨操作系統(tǒng),有操作系統(tǒng)決定,不可控)
AOF重寫配置
- AOF重寫配置
- auto-aof-rewrite-min-size #AOF重寫需要的最小尺寸
- auto-aof-rewrite-percentage #AOF文件增長率
- aof_current_size #統(tǒng)計當前aof文件大小
- aof_base_size #aof上次啟動和重寫的尺寸
區(qū)別
總結
AOF是全量備份,RDB是增量備份。