常見的最佳做法

本頁面提供 Memorystore for Redis 的最佳使用指南。這個頁面也會指出應避免的潛在問題。

如需疑難排解情境清單,請參閱「疑難排解」。

RDB 匯出

匯出 RDB 備份時,請遵循下列指南:

耗用大量資源的作業

對於標準級 Redis 執行個體,下列作業會在作業期間使用額外記憶體:

版本升級、縮放和手動容錯會因複製而使用額外記憶體 (適用於標準級執行個體)。這些作業會遵循「Standard Tier 執行個體升級行為」一文所述的複寫程序。

匯入和匯出作業需要額外記憶體,因為這些作業會使用分支的 Redis 程序,並使用與這些作業相關聯的「寫入時複製」資料管理功能。

為減輕資源密集型作業的缺點,您應:

需要重試連線的作業和情況

下列作業和情境會中斷網路與 Redis 執行個體之間的網路連線:

這些作業會修改執行個體,因此需要暫時中斷連線。您必須先採用具指數回退功能的重試邏輯,再執行這些作業,這樣應用程式才能自動重新連線並繼續正常運作。

例行維護

Memorystore for Redis 執行個體會定期進行維護。詳情請參閱 Memorystore for Redis 的維護政策

請實施下列最佳做法,以便準備例行維護作業:

  • 設定維護期間,以便控制維護更新的時間。
    • 請在執行個體流量較低且記憶體開銷充足的時間,安排維護期間。詳情請參閱「維護更新的影響」。
  • 開啟維護期間通知,以便在即將進行維護時收到通知。
  • 採用以指數輪詢方式重試的邏輯
  • 如為標準層執行個體,您可以使用手動容錯移轉模擬維護作業,瞭解維護作業造成的容錯移轉對應用程式有何影響。
  • 針對基本層級執行個體,您可以將執行個體暫時縮放至較大的大小,模擬維護更新的影響。觀察到影響後,您可以將規模縮減至原始大小。

記憶體管理

開放原始碼 Redis 會發生眾所皆知的記憶體碎裂問題,因此記憶體管理可能會相當棘手。建議您降低執行個體的 maxmemory 設定,以便在記憶體壓力過高時降低額外負擔。

監控 Memorystore 執行個體的記憶體壓力最佳做法,就是使用「系統記憶體用量比率」指標。如需 Memorystore for Redis 記憶體管理的詳細指南,請參閱記憶體管理最佳做法

管理閒置連線

如果連線未正確終止,您可能會發現 Memorystore 執行個體的連線數量隨時間增加。這可能會對效能造成負面影響,尤其是在您使用傳輸中加密時,因為這項功能會根據您的容量層級設下連線數量上限。為避免這種情況發生,建議您使用 timeout Redis 設定參數,設定閒置用戶端連線自動終止前的秒數。

資料存取透明化控管機制資源名稱

請勿將機密資料儲存在 Memorystore for Redis 資源名稱中。資源名稱是指 Memorystore for Redis 執行個體名稱和執行個體中繼資料 (例如標記)。儲存在資源名稱中的資料不一定受到 Google Cloud 資料存取透明化控管機制保護,且可能與貴機構的資料存取透明化法規遵循要求相衝突。

部分無伺服器環境需要使用無伺服器虛擬私有雲存取連接器

部分無伺服器環境需要無伺服器虛擬私有雲存取連接器,才能連線至 Memorystore for Redis。如果您想使用其中一個環境進行連線,請為專案設定無伺服器虛擬私有雲存取連接器。

網路

建議您使用私人服務存取 連線模式。Memorystore for Redis 使用兩種連線模式:私人服務存取權和直接對等互連。私人服務存取連線模式可簡化 IP 範圍管理,並讓您視需要使用共用虛擬私有雲。

建立執行個體後,就無法變更連線模式。

詳情請參閱「網路」。

監控和快訊

建議您使用監控快訊,因為這些功能可提供 Redis 執行個體記憶體用量的關鍵信號。這些指標還可讓您深入瞭解 Redis 執行個體如何有效回應傳入的快取要求。

請設定下列預設快訊:

CPU 使用率最佳做法

不當使用耗用大量資源的 Redis 指令會導致延遲時間長、無回應或連線發生問題。標準級執行個體可在災難復原期間提供高可用性,並依賴主要節點和備用資源節點之間的非同步複製功能。如果其中一個節點的耗用資源較多的指令處理作業會阻斷 Redis 主執行緒,複製作業可能會受到影響。如果問題持續發生,且發生位置中斷的情況,在發生中斷的位置寫入的最新資料,可能無法在其他位置使用。

建議您使用 Cloud Monitoring,為「主執行緒 CPU 秒數」(redis.googleapis.com/stats/cpu_utilization_main_thread) 指標設定快訊,確保主節點的 CPU 使用率不超過 0.8 秒,而複本節點的 CPU 使用率不超過 0.5 秒 (複本指定為讀取複本時)。

如果 Redis 執行個體超出建議值,建議您擴充執行個體,以便升級至較高的容量層級,或是按照疑難排解操作說明避免 CPU 密集運算。