Redis

Redis - 資料持久性設定

不同情境下 Redis 資料持久性設定建議

ta-ching chen

2 minute read

前言

大型網站、平台往往需要透過緩存來儲存靜態、異動量較少的資料,減緩後端伺服器的負載,而目前 Redis 與 Memcached 兩套皆是非常流行的儲存資料庫。以下會介紹在 Redis 的資料持久性 (data persistence) 該如何設定才足以應付日常營運需求 (內文主要針對需要注意的設定進行講解,完整 Redis 設定請見官方設定)。

寫在前頭,Redis Persistence 很可能跟你想的不一樣

Redis 是「緩存」而非永久儲存用的資料庫

偶爾聽到有人會將資料定期倒入 Redis 存放,但資料持久性的功能應當視為在出現異常時,服務能在短時間回復的最後手段。「緩存」裡面資料最終都要能夠透過任何方式還原,才是較為正確的做法。

資料持久性設定

Redis 目前擁有兩種資料持久性的格式: RDB、AOF

  • RDB:
    • 優點: 備份頻率較 AOF 低,但檔案小、適合作為災難還原的備份檔
    • 缺點: 當服務異常停止時,部分數據可能會遺失

設定的格式為 save <seconds> <changes>,意思是當過 X 秒後且有 Y 個鍵值改變即備份資料。

# Default Setting
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes