RDB持久化是在指定的時間間隔內將內存中的數據集快照寫入磁盤,至關於Snapshot快照,它恢復時是將快照文件直接讀到內存裏。redis
RDB的配置通常在196行左右開始。vim
save 900 1 #在900秒(15分鐘)以後,若是至少有1個key發生變化,則dump內存快照。 save 300 10 #在300秒(5分鐘)以後,若是至少有10個key發生變化,則dump內存快照。 save 60 10000 #在60秒(1分鐘)以後,若是至少有10000個key發生變化,則dump內存快照。
視狀況啓用。安全
save
命令將阻塞當前Redis服務器,知道RDB過程完成爲止。
其配置再配置文件中設置。服務器
> save
生成的dump.rdb(默認文件名)會在啓動的當前目錄下。
命令已廢棄。app
Redis進程執行fork操做建立子進程,RDB持久化過程由子進程負責,完成後自動結束。spa
> bgsave
生成的dump.rdb文件同save
命令。.net
> config get dir # 獲取當前目錄
而後把要恢復的dump.rdb(默認名稱)文件放在目錄下從新啓動便可。日誌
把生成RDB文件時間註釋掉便可。code
$ vim redis-config # save 900 1 # save 300 10 # save 60 10000
> config set save ""
AOF持久化
以獨立日誌的方式記錄每次寫命令,重啓時再從新執行AOF文件中的命令達到恢復數據的目的。blog
開啓AOF功能須要設置配置:appendonly yes
。默認不開啓。
也能夠在redis-cli中設置:
> config set appendonly yes > config get appendonly
這裏開啓appendonly
,而且把AOF文件保存爲appendonly.aof
。
在Redis的配置文件中存在三種同步方式,它們分別是:
appendfsync always # 每次有數據修改發生時都會寫入AOF文件。 appendfsync everysec # 每秒鐘同步一次,該策略爲AOF的缺省策略。 appendfsync no # 從不一樣步。高效可是數據不會被持久化。
no-appendfsync-no-rewrite
參數關閉雖然可能會形成主進程阻塞的問題,可是相對安全,不會丟失數據。緣由:https://blog.csdn.net/qinjie6...。
AOF文件的大小隨着時間的流逝必定會愈來愈大。Redis經過重寫AOF的機制來縮小AOF文件的體積。
AOF重寫大體就是刪除一些無心義的命令。
在Redis-cli中使用:
> bgrewriteaof
在配置文件中參數appendfilename "XX.aof"
便可,Redis會自動加載。