1. 程式人生 > 實用技巧 >Redis 持久化

Redis 持久化

Redis 持久化:Redis 將記憶體中的資料寫入到磁碟,永久儲存 。

持久化的模式

RDB(Redis DataBase)模式

AOF(Append Only File)模式

RDB 模式

可以在指定的時間間隔內生成資料集的時間點快照(point-in-time snapshot)

1.預設情況下,Redis儲存資料集快照到磁碟,名為 dump.rdb 的二進位制檔案。你可以設定讓Redis在N秒內至少有M次資料集改動時儲存資料集,或者你也可以手動呼叫SAVE或者BGSAVE命令。

2.在上文中我們已經在配置檔案中做過對應的配置:
例如,這個配置會讓Redis在每個60秒內至少有1000次鍵改動時自動轉儲資料集到磁碟:
save 60 1000

3.當 Redis 需要儲存 dump.rdb 檔案時,伺服器執行以下操作:
Redis 呼叫 fork() ,同時擁有父程序和子程序。
子程序將資料集寫入到一個臨時的 RDB 檔案中。當子程序完成對新 RDB 檔案的寫入時, Redis 用新 RDB 檔案替換原來的 RDB 檔案,並刪除舊的 RDB 檔案。

4.這種方式使得 Redis 可以從主從複製機制中獲益。

RDB 持久化

# 編輯配置檔案
[root@redis ~]# vim /service/redis/6379/redis.conf 
bind 172.16.1.51 127.0.0.1
port 6379
daemonize yes
pidfile /service/redis/6379/redis_6379.pid
loglevel notice
logfile /service/redis/6379/redis_6379.log
# 設定 redis 密碼
requirepass 123
# 持久化資料檔案儲存位置
dir /service/redis/6379
# rdb持久化資料檔名
dbfilename dump.rdb
# 900秒(15分鐘)內有1個更改
save 900 1
# 300秒(5分鐘)內有10個更改
save 300 10
# 60秒(1分鐘)內有10000個更改
save 60 10000

RDB 檔案

# 使用 RDB 檔案步驟,如果先走第 2 步, RDB 檔案會被覆蓋
1.先停止 Redis
2.將 rdb檔案 放到指定目錄下
3.啟動 Redis