redis操作的數據是在內存中的,它支持兩種方案將內存中的數據持久化到硬盤中,下面分別介紹。
1、RDB方式(默認方式)
RDB持久化是通過快照(snapshotting)完成的,當符合一定條件時Redis會自動將內存中的數據進行快照並持久化到硬盤。打開redis.conf,如圖:

save 900 1:表示15分鍾(900秒鍾)內至少1個鍵被更改則進行快照。
save 300 10:表示5分鍾(300秒)內至少10個鍵被更改則進行快照。
save 60 10000:表示1分鍾(60秒)內至少10000個鍵被更改則進行快照。
這3個是默認配置,只要滿足一個就會持久化,也可以自己根據需要配置(添加、減少、修改)。
RDB快照文件的位置默認在bin下面的dump.rdb,可以修改redis.conf進行配置。dbfilename:文件名,dir:路徑

Redis啟動后讀取RDB快照文件,將數據從硬盤載入到內存。通常將一千萬個字符串類型鍵、1GB的快照文件載入到內存需要花費20~30秒鍾。
2、AOF方式
默認情況下Redis沒有開啟AOF(append only file)方式,可以通過修改redis.conf配置文件中的appendonly參數開啟。如下圖所示:

appendonly設置為true表示開啟,appendfilename:AOF文件的名稱,默認是: appendonly.aof,dir:路徑(與RDB方式使用一個參數)。
開啟AOF持久化后每執行一條會更改Redis中的數據的命令,Redis就會將該命令寫入硬盤中的AOF文件。
3、兩種方式的比較
通過RDB方式實現持久化,一旦Redis異常退出,就會丟失最后一次快照以后更改的所有數據。這就需要開發者根據具體的應用場合,通過組合設置自動快照條件的方式來將可能發生的數據損失控制在能夠接受的范圍。如果數據很重要以至於無法承受任何損失,則可以考慮使用AOF方式進行持久化。
