【Redis教程】入門到精通 超詳細(xì)版教程

P6_Redis-6-持久化
持久化,就是把內(nèi)存里的數(shù)據(jù)落盤的過程。
redis支持持久化,memcached不支持。
redis支持2種持久化方式:RDB、AOF
RDB,基于時間點的快照(point-in-time snapshot),定時將內(nèi)存的實時狀態(tài)做成快照的方式,保存在磁盤上。
只保存當(dāng)前狀態(tài)的快照,會把之前的快照覆蓋。
相當(dāng)于把redis中的鍵值對拍張照片,在磁盤上存檔。
優(yōu)點:速度快,適合快速備份,主從復(fù)制也是基于RDB持久化功能實現(xiàn)的。
缺點:會有數(shù)據(jù)丟失
在redis控制臺執(zhí)行“save”命令,才會觸發(fā)持久化機制。
“save”命令會阻塞鍵值對的修改,在執(zhí)行此命令時,如果數(shù)據(jù)量大,會影響鍵值對的寫入。
“bgsave”命令是在后臺執(zhí)行持久化,會檢查那些鍵值對正在使用,先持久化沒有使用的鍵值對。
rdb持久化配置參數(shù)
vim /etc/redis.conf
dir /data/redis
dbfilename dump.rdb
save 900 1
save 300 10
save 60 10000
900秒(15分鐘)內(nèi)有1次更改,就會持久化1次
300秒(5分鐘)內(nèi)有10次更改,就會持久化1次
60秒(1分鐘)內(nèi)有10000次更改,就會持久化1次
修改參數(shù)后,需要重啟redis才能生效。
AOF(append-only log file,字面意思,追加式的日志文件)
特別接近MySQL的binlog,記錄的是redis上的所有變更類語句,也就是記成日志的方式。
比rdb方式,對數(shù)據(jù)的完整更安全。
記錄redis執(zhí)行的所有寫操作命令,并在服務(wù)器啟動時,通過重新執(zhí)行這些命令來還原數(shù)據(jù)集。
AOF文件中的命令全部以redis協(xié)議的格式保存,新命令會被追加到文件的末尾。
優(yōu)點:最大程度保證數(shù)據(jù)不丟
缺點:日志量級比較大
aof持久化配置
appendonly yes【是否打開此功能,默認(rèn)是關(guān)閉】
appendfsync always【落盤的策略:always,每條變更都要記錄;everysec,每秒記錄】
RDB和AOF兩種持久化方式是可以共存的。