Redis數據持久化

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方式慢
發佈了103 篇原創文章 · 獲贊 7 · 訪問量 6008
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章