Redis 詳細設定指南

Redis 是廣受歡迎的開放原始碼資料庫,專門用於在記憶體中儲存資料。除了預設設定外,Redis 還提供許多設定參數,讓您能夠針對特定應用程式需求調整其行為。本指南將提供 Redis 詳細設定指南,幫助您優化 Redis 設定以獲得最佳效能。

Redis 詳細設定指南

常見設定參數

記憶體管理

  • maxmemory (bytes):設定 Redis 可使用的最大記憶體量。
  • maxmemory-policy:當 Redis 達到 maxmemory 限制時,決定如何從 Redis 中刪除鍵值對的演算法。可選值包括 volatile-lru, volatile-random, volatile-ttl, allkeys-lru, allkeys-random, noeviction。
  • maxmemory-samples (n):在執行 LRU 或隨機演算法時,用於抽樣的鍵值對數量。

資料儲存

  • save (seconds n):定期將 Redis 資料庫儲存到磁碟的頻率。
  • rdbcompression (yes/no):是否將 RDB 檔案進行壓縮。
  • aof-rewrite-percentage (n%):觸發 AOF 檔案重新寫入的觸發百分比。
  • aof-rewrite-min-size (bytes):觸發 AOF 檔案重新寫入的最小 AOF 檔案大小。

效能調整

  • maxclients (n):Redis 可以同時處理的最大客戶端連線數。
  • tcp-keepalive (yes/no):啟用 TCP 保活功能,以防止空閒連線被關閉。
  • tcp-keepalive-idle (seconds):在 TCP 保活探測之前連線處於空閒狀態的時間量。
  • hash-max-zipmap-entries (n):哈希資料結構自動轉換為 ziplist 之前允許的最大 zipmap 條目數。
  • list-max-ziplist-entries (n):清單資料結構自動轉換為 ziplist 之前允許的最大 ziplist 條目數。

安全性

  • requirepass password:設定 Redis 驗證密碼。
  • bind ip-address:將 Redis 伺服器繫結到特定 IP 地址。
  • protected-mode (yes/no):僅允許已驗證的客戶端連線到 Redis。

進階設定

複寫 (Replication)

  • repl-diskless-sync (yes/no):禁用複寫期間的 RDB 檔案傳輸。
  • repl-diskless-sync-delay (seconds):在使用無磁碟複

寫時,在執行複寫之前等待刪除後台 RDB 檔案的秒數。

  • repl-disable-tcp-nodelay (yes/no):禁用 TCP_NODELAY 選項,以改善複寫效能。

叢集 (Clustering)

  • cluster-enabled (yes/no):啟用 Redis 叢集。
  • cluster-config-file name:設定 Redis 叢集設定檔。
  • cluster-node-timeout (milliseconds):Redis 叢集節點超時時間。

監控

  • slowlog-log-slower-than (microseconds):記錄執行時間超過指定微秒的指令。
  • slowlog-max-len (n):慢查詢日誌中儲存的查詢數量。
  • latency-monitor-threshold (microseconds):記錄執行時間超過指定微秒的指令。

設定範例

以下是一個 Redis 設定範例,針對效能和穩定性進行了最佳化:

maxmemory 1gb
maxmemory-policy volatile-lru
maxmemory-samples 10
save 60 1200
rdbcompression yes
aof-rewrite-percentage 100
aof-rewrite-min-size 64mb
maxclients 10000
tcp-keepalive yes
tcp-keepalive-idle 300
hash-max-zipmap-entries 512
list-max-ziplist-entries 512
requirepass password
bind 127.0.0.1
protected-mode yes

結論

透過調整 Redis 設定,您可以優化其效能、穩定性並滿足特定應用程式的需求。本指南提供了詳細的 Redis 設定參數說明,以及建議的最佳化設定範例。透過遵循這些指南,您可以確保 Redis 滿足您的資料儲存和快取需求。