RDB 持久化
能夠在指定的時間間隔內生成數據集的時間點快照(point-in-time snapshot)。
優勢:快速持久化、佔用磁盤空間少、適合於用作備份,主從複製也是基於RDB持久化功能實現的。
缺點:當斷電,重啓時,RDB會丟失少部分數據。
vim /nosql/6379/redis.conf
dir /nosql/6379
dbfilename dump.rdb
save 900 1
save 300 10
save 60 10000
配置分別表示:
900秒(15分鐘)內有1個更改
300秒(5分鐘)內有10個更改
60秒內有10000個更改
# 後臺備份進程出錯時,主進程停不中止寫入?主進程不中止容易形成數據不一致
stop-writes-on-bgsave-error yes
# 導出的rdb文件是否壓縮、若是rdb的大小很大的話建議這麼作
rdbcompression yes
# 導入rdb恢復時數據時,要不要檢驗rdb的完整性、驗證版本是否是一致
rdbchecksum yes
# 導出來的rdb文件名
dbfilename dump.rdb
# rdb的放置路徑
dir ./
記錄服務器執行的全部寫操做命令,並在服務器啓動時,經過從新執行這些命令來還原數據集。
AOF文件中的命令所有以Redis協議的格式來保存,新命令會被追加到文件的末尾。
優勢:能夠最大程度保證數據不丟
缺點:日誌記錄量級比較大
# 是否打開aof日誌功能
appendonly yes
# 每1個命令,都當即同步到aof
appendfsync always
# 沒1秒寫入1次
appendfsync everysec
# 寫入工做交給操做系統,由操做系統判斷緩衝區大小,統一寫入到aof.
appendfsync no
vim /nosql/6379/redis.conf
appendonly yes
appendfsync everysec
# 正在導出rdb快照的過程當中,要不要中止同步aof
no-appendfsync-on-rewrite yes/no
# aof文件大小比起上次重寫時的大小,增加率100%時重寫,缺點:業務開始的時候,會重複寫屢次。
auto-aof-rewrite-percentage 100
# aof文件,至少超過64M時,重寫
auto-aof-rewrite-min-size 64mb
redis持久化方式有哪些?有什麼區別?
rob:基於快照的持久化,速度更快,通常用作備份,主從複製也是依賴於rdb持久化功能。
aof:以追加的方式記錄redis操做日誌的文件。能夠最大程度的保證redis數據安全,相似於mysql的binlog