Redis持久化的方式有兩種:
一、SnapShotting 快照持久化:
1、持久化的配置:
此持久化默認開啓,一次性把Redis中所有數據保存到硬盤中,如果數據非常多(10-20G)就不適合頻繁進行該持久化操作。
在redis.conf中可以找到快照持久化的配置信息,如下:
save 900 1,如果900秒內超過1個key被修改,則發起快照持久化。
save 300 10 ,如果300秒內超過10個key被修改,則發起快照持久化。
save 60 10000 ,如果60秒內超過10000 個key被修改,則發起快照持久化。
以上三個save的意思是:
數據修改的頻率高,備份的頻率也高。
數據修改的頻率低,備份的頻率也低。
2、持久化的目錄和文件名:
3、手動發起快照持久化:
./redis-cli bgsave
二、Append Only File 精細持久化(AOF):
1、本質:
把用戶執行的每個”寫“指令(添加、修改、刪除)都備份到文件中,還原數據的時候就是執行具體寫指令而已。是比快照持久化更詳細、準確的持久化,故稱爲精細持久化。
注意:開啓AOF持久化會清空Redis中的數據,因此AOF持久化要在Redis服務開始使用前開啓。
2、開啓方式:AOF持久化默認是關閉的。
(1)、在redis.conf中將appendonly no 改爲appendonly yes,
(2)、同時配置appendfilename appendonly.aof即可。
3、aof備份頻率:
(1)、appendfsync always:每次修改就備份,影響Redis性能,很少用。
(2)、appendfsync no:看服務器是否空閒,如果空閒才備份,不確定因素多,很少用。
(3)、appendfsync everysec:每秒備份一次,常用。
4、aof備份文件的優化壓縮處理:bgrewriteaof,見如下截圖:優化前 appendonly.aof的大小457,優化後 appendonly.aof的大小爲257