Redis 數據持久化方案
一、持久化方案
- RDB(Redis DataBase):指定的時間間隔內保存數據快照(SNAPSHOTTING),fork出子進程,之後再由子進程完成這些持久化的工作;
- AOF(Append Only File):先把命令追加到操作日誌的尾部,保存所有的歷史操作(APPEND ONLY MODE)
- 優缺點
RDB優點:
- 只存儲一個文件,空間佔用小,容易進行災難故障恢復;
- 性能最大化,fork出子進程,之後再由子進程完成這些持久化的工作,避免進程io。
- 相比於AOF機制,如果數據集很大,RDB的啓動效率會更高。
RDB缺點:
因爲是特定條件下進行一次持久化(每隔一段時間),就可能會導致一旦redis崩潰,再次回覆時,可能會導致部分數據丟失。
注:如果設置的備份時間間隔較短,比較耗服務器性能,如果設置的備份時間間隔較長,又可能會導致數據恢復時部分數據丟失
AOF優點:
AOF包含一個格式清晰、易於理解的日誌文件用於記錄所有的修改操作。
數據非常完整,故障恢復丟失數據少。
AOF缺點:
- 因爲AOF模式要把每一步redis命令都記錄下來,所以就導致文件的體積會很大。
- 根據同步策略的不同,AOF在運行效率上往往會慢於RDB。總之,每秒同步策略的效率是比較高的,同步禁用策略的效率和RDB一樣高效
二、配置RDB
2.1 編輯 redis.conf
注:使用whereis redis命令查看redis安裝在哪個位置,然後進入redis安裝目錄的etc目錄下,編輯redis.conf。
2.1 默認備份的時間間隔
save 900 1
save 300 10
save 60 10000
2.1 默認備份的文件名稱
The filename where to dump the DB
dbfilename dump.rdb
三、配置AOF
將redis.conf 配置文件中的appendonly 參數改爲yes 後,則redis開始啓動AOF數據持久化模式