redis學習筆記(四)--RDB持久化和AOF持久化

RDB

基本概念

RDB持久化是在指定的時間間隔內將內存中的數據集快照寫入磁盤,至關於Snapshot快照,它恢復時是將快照文件直接讀到內存裏。redis

配置文件

clipboard.png

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

save命令將阻塞當前Redis服務器,知道RDB過程完成爲止。
其配置再配置文件中設置。服務器

> save

生成的dump.rdb(默認文件名)會在啓動的當前目錄下。
命令已廢棄。app

bgsave

Redis進程執行fork操做建立子進程,RDB持久化過程由子進程負責,完成後自動結束。spa

> bgsave

生成的dump.rdb文件同save命令。.net

恢復

> config get dir # 獲取當前目錄

而後把要恢復的dump.rdb(默認名稱)文件放在目錄下從新啓動便可。日誌

中止RDB

配置文件中止

把生成RDB文件時間註釋掉便可。code

$ vim redis-config
# save 900 1           
# save 300 10         
# save 60 10000

手動中止

>  config set save ""

AOF

基本概念

AOF持久化以獨立日誌的方式記錄每次寫命令,重啓時再從新執行AOF文件中的命令達到恢復數據的目的。blog

使用AOF

開啓AOF功能須要設置配置:appendonly yes。默認不開啓。

clipboard.png
也能夠在redis-cli中設置:

> config set appendonly yes
> config get appendonly

clipboard.png

這裏開啓appendonly,而且把AOF文件保存爲appendonly.aof
在Redis的配置文件中存在三種同步方式,它們分別是:

appendfsync always     # 每次有數據修改發生時都會寫入AOF文件。
appendfsync everysec   # 每秒鐘同步一次,該策略爲AOF的缺省策略。
appendfsync no         # 從不一樣步。高效可是數據不會被持久化。

clipboard.png

no-appendfsync-no-rewrite參數關閉雖然可能會形成主進程阻塞的問題,可是相對安全,不會丟失數據。緣由:https://blog.csdn.net/qinjie6...
clipboard.png

AOF的重寫

AOF文件的大小隨着時間的流逝必定會愈來愈大。Redis經過重寫AOF的機制來縮小AOF文件的體積。
clipboard.png
AOF重寫大體就是刪除一些無心義的命令。
在Redis-cli中使用:

> bgrewriteaof

clipboard.png

加載AOF文件

在配置文件中參數appendfilename "XX.aof" 便可,Redis會自動加載。