redis每隔N分鐘或N次操作後,從內存中獲取數據形成dump.rdb文件,壓縮後備份在目錄中,這個動作就是快照
dump.rdb文件默認會在redis的安裝目錄下
如果要改變rdb文件的存儲位置,在配置文件中找到下面的配置項
dir ./ # ./ 表示存儲位置爲當前目錄
dump.tdb文件的文件名也可以在配置文件中修改
dbfilename dump.rdb # 備份文件的默認文件名
redis快照配置,在配置文件中(redis.windows.conf)找到下面幾行配置
save 900 1 #900秒內超過1個鍵被修改,則發起快照
save 300 10 #300秒超過10個鍵被修改,則發起快照
save 60 10000 #60秒內超過10000個鍵被修改,則發起快照
如果將上面幾行都註釋掉,即關閉快照
手動發起快照
在redis命令行登錄狀態下,執行下面的命令
bgsave
在未登錄狀態下執行
./redis-cli -a 密碼 bgsave
因爲快照的執行是有一定時間間隔的,所以如果redis以外掛掉的話,就會丟失最後一次快照之後的所有數據的修改,但是爲了不讓用戶的操作丟失redis記錄了用戶每次的操作,aof日誌
在redis的配置文件中找到以下配置項
appendonly yes #表示啓用aof日誌
appendfilename appendonly.aof #保存日誌的文件,可以指定該文件的路徑
aof的觸發條件配置項,下面配置三選一
appendfsync always # 每次接收到命令都寫入磁盤,保證數據安全性,但比較消耗服務器資源
appendfsync everysec # 每秒鐘向磁盤中寫入一次,推薦使用此配置
appendfsync no #完全依賴os,但性能最好
如果將用戶的所有操作都記錄下來,aof文件必然佔用很多磁盤空間,所以可以將aof文件重寫來節省磁盤空間,redis可以配置自動重寫,在配置文件中
auto-aof-rewrite-percentage 100 # 100 表示文件大小比起上一次重寫,文件大小增長率爲100%時執行重寫
auto-aof-rewrite-min-size 64mb # 64mb 表示文件至少超過64M時,執行重寫
no-appendfsync-on-rewrite yes # 在導出rdb快照的過程中,是否停止同步aof,建議改成yes,
當然也可以手動重寫aof文件
在redis命令行登錄狀態下
bgrewriteaof
未登錄狀態下
./redis-cli -a 密碼 bgrewriteaof