1. 程式人生 > 其它 >Redis 持久化 RDB

Redis 持久化 RDB

RDB持久化是把當前程序資料生成快照儲存到硬碟的過程,觸發RDB持 久化過程分為手動觸發和自動觸發。

手動觸發分別對應save和bgsave命令:

  • ·save命令:阻塞當前Redis伺服器,線上環境不建議使用
  • ·bgsave命令:Redis程序執行fork操作建立子程序,RDB持久化過程由子 程序負責,完成後自動結束。阻塞只發生在fork階段

通 過info stats命令檢視latest_fork_usec選項,可以獲取最近一個fork操作的耗 時,單位為微秒。

RDB的優點:

·RDB是一個緊湊壓縮的二進位制檔案,代表Redis在某個時間點上的資料 快照。非常適用於備份,全量複製等場景。比如每6小時執行bgsave備份, 並把RDB檔案拷貝到遠端機器或者檔案系統中(如hdfs),用於災難恢復。

·Redis載入RDB恢復資料遠遠快於AOF的方式。

RDB的缺點:

·RDB方式資料沒辦法做到實時持久化/秒級持久化。因為bgsave每次運 行都要執行fork操作建立子程序,屬於重量級操作,頻繁執行成本過高。

·RDB檔案使用特定二進位制格式儲存,Redis版本演進過程中有多個格式 的RDB版本,存在老版本Redis服務無法相容新版RDB格式的問題。

針對RDB不適合實時持久化的問題,Redis提供了AOF持久化方式來解 決。