本頁面提供 Memorystore for Redis 的最佳使用指南。這個頁面也會指出應避免的潛在問題。
如需疑難排解情境清單,請參閱「疑難排解」。
RDB 匯出
匯出 RDB 備份時,請遵循下列指南:
- 在寫入率低的期間匯出。
- 如果在寫入率高的期間匯出,請將
maxmemory
設定值暫時調低至執行個體容量的 50%,以便提供足夠的負擔,確保作業順利進行。
耗用大量資源的作業
對於標準級 Redis 執行個體,下列作業會在作業期間使用額外記憶體:
版本升級、縮放和手動容錯會因複製而使用額外記憶體 (適用於標準級執行個體)。這些作業會遵循「Standard Tier 執行個體升級行為」一文所述的複寫程序。
匯入和匯出作業需要額外記憶體,因為這些作業會使用分支的 Redis 程序,並使用與這些作業相關聯的「寫入時複製」資料管理功能。
為減輕資源密集型作業的缺點,您應:
- 在作業期間,將 maxmemory 設定調降至執行個體容量的 80%。這可為成功的作業提供足夠的負載。
- 監控系統記憶體用量比率指標,並確保該指標在執行其中一個操作前低於 80%。
- 請在執行個體流量較低的期間執行這些作業,例如在夜間或週末等。
- 請先設定重試邏輯,並使用指數輪詢,再執行這些作業。
需要重試連線的作業和情況
下列作業和情境會中斷網路與 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 密集運算。