RDB
- Redis DataBase
- 數據持久化方式之一
- 數據持久化默認方式
- 按照指定的時間間隔,將內存中的數據快照寫入硬盤
] vim /etc/redis/6379.conf
206 # In the example below the behaviour will be to save:
207 # after 900 sec (15 min) if at least 1 key changed
208 # after 300 sec (5 min) if at least 10 keys changed
209 # after 60 sec if at least 10000 keys changed
219 save 900 1
220 save 300 10
221 save 60 10000
254 dbfilename dump.rdb #數據文件名稱
備份RDB文件
] cp /var/lib/redis/6379/dump.rdb /bak
使用dump.rbd文件恢復數據
- 將dump.rbd文件拷貝到數據庫目錄下,重啓redis服務
RDB優點
- 高性能的持久化實現-:創建一個子進程來執行持久化,先將數據寫入臨時文件,持久化過程結束後,再用這個臨時文件替換上次持久化的文件,過程中主進程不進行任何IO操作
- 比較適合大規模數據恢復,且對數據完整度要求不高的場景
RDB缺點
- 意外宕機時,丟失最後一次持久化之後的數據
AOF
- Append Only File
- 追加方式記錄寫操作的文件
- 記錄redis服務所有的寫操作
- 不斷將新的寫操作,追加到文件的末尾
- 使用cat可以查看文件內容
] redis-cli -h 192.168.4.51 -p 6351
> config set appendonly yes #啓用AOF
> config rewrite #將設置寫入配置文件
備份AOF文件
] cp /var/lib/redis/6379/appendonly.aof /bak
使用AOF文件恢復數據
] cp /bak/appendonly.aof /var/lib/redis/6379/
] redis-server /etc/redis/6379.conf
優化配置
] vim /etc/redis/6379.conf
673 appendonly yes #啓用AOF
677 appendfilename "appendonly.aof" #定義文件名
#AOF記錄寫操作的方式
702 # appendfsync always #實時記錄,並完成磁盤同步
703 appendfsync everysec #每秒記錄一次.並完成磁盤同步
704 # appendfsync no #寫入AOF,不執行磁盤同步
744 auto-aof-rewrite-percentage 100 #再次觸發重寫的增長百分比
745 auto-aof-rewrite-min-size 64mb #首次重寫觸發值
修復AOF文件
] redis-check-aof --fix appendonly.aof
AOF優點
- 可以靈活設置持久化方式
- 出現意外宕機時,僅可能損失微量數據
AOF缺點
- 持久化文件的體積通常會大於RDB方式
- 執行fsync策略時的速度可能會比RDB方式慢