本頁說明標準級 Memorystore for Redis 執行個體的高可用性 (HA)。
標準級會將資料複製到一或多個副本,並提供快速的自動容錯移轉功能,保護 Redis 執行個體免於常見故障。
如果標準層執行個體停用 readReplicaMode 設定,則會包含主要執行個體和提供高可用性功能的副本。啟用這項設定的標準級執行個體會包含主要執行個體,以及一到五個唯讀備用資源。這項設定中的讀取副本會執行讀取作業,並為高可用性功能提供容錯移轉支援。如要判斷 readReplicaMode 設定是否已停用或啟用,請參閱「查看執行個體的唯讀副本資訊」。
Memorystore for Redis 會將主要執行個體複製到一或多個副本,以提供高可用性。Memorystore for Redis 會使用非同步複製通訊協定,將您對主要執行個體資料所做的任何變更,複製到副本。由於複製作業是非同步進行,副本可能會落後執行個體,具體情況取決於主要執行個體的寫入速率。
如果主要執行個體發生故障,執行個體會自動容錯移轉至副本。如果執行個體有多個副本,執行個體會自動容錯移轉至複製延遲最少的健全副本。

如果將執行個體設定為只有一個非讀取副本,Memorystore for Redis 會將所有應用程式連線導向主要端點。如果將執行個體設定為使用唯讀備用資源,應用程式也可以使用讀取端點,將讀取查詢分散至所有備用資源。
資料持續性和高可用性
雖然標準級透過複製和自動容錯移轉提供高可用性 (HA),但高可用性無法保證資料完全耐久性。即使啟用高可用性,在發生暫時性區域故障等災難性事件時,Memorystore for Redis 也無法提供完整的資料耐久性。
為協助保護資料並提供基本層級的持續性,使用 Google Cloud 控制台建立 Memorystore for Redis 執行個體時,系統預設會啟用 RDB 快照。
對於正式版工作負載,請考慮下列最佳做法,進一步提升資料復原能力:
- 災難復原:Memorystore for Redis 不支援跨區域複製。如果您的災難復原策略需要跨區域複製,才能真正實現區域韌性,建議使用 Memorystore for Valkey 執行個體。如要進一步瞭解如何跨區域設定及管理次要執行個體,請參閱 Memorystore for Valkey 說明文件中的「使用跨區域複製功能」。
- 最高持久性:如果應用程式需要最高層級的資料持久性,建議使用設定跨區域複製、每日自動備份和僅附加檔案 (AOF) 持久性的 Memorystore for Valkey 執行個體。結合這兩項功能,可提供最完善的資料遺失防護。詳情請參閱 Memorystore for Valkey 說明文件中的「持久性總覽」。
發生容錯移轉時
主要執行個體發生故障時,系統會進行容錯移轉。容錯移轉期間,主要執行個體和讀取端點會自動重新導向至新的主要執行個體和副本。Memorystore for Redis 會捨棄與主要端點的所有連線。此外,Memorystore for Redis 也會捨棄與升級唯讀備用資源的讀取端點連線。
容錯移轉對應用程式的影響
主要執行個體容錯移轉至副本時,Memorystore for Redis 會捨棄執行個體主要端點的現有連線。自動修復期間,執行個體平均會停機 30 秒,維護事件則為 15 秒。重新連線後,應用程式會使用相同的連線字串或 IP 位址,自動重新導向至新的主要執行個體。容錯移轉後,您不需要更新應用程式。
在容錯移轉期間,如果連線至讀取端點,Memorystore for Redis 會捨棄連線至升級為主要執行個體的副本。Memorystore for Redis 會繼續為其他副本提供連線服務。容錯移轉完成且新的副本可用後,Memorystore for Redis 會將連線重新導向至新的副本。
在容錯移轉後重試連線至執行個體
發生容錯移轉時,Memorystore for Redis 會捨棄主要端點的所有連線。視副本數量而定,Memorystore for Redis 也可能會捨棄部分讀取連線。
因此,應用程式必須重試,才能重新建立連線。建議重試邏輯使用指數輪詢,確保不會因重試要求過多而導致執行個體過載。除了加入重試邏輯,我們也建議您透過手動容錯移轉測試應用程式,瞭解容錯移轉對應用程式的影響。
大多數 Redis 用戶端都有內建的重試功能。如果因容錯移轉而導致連線中斷,建議使用這些重試功能。
執行下列工作時會發生容錯移轉:
如果您在應用程式中實作重試邏輯,以處理因容錯移轉而導致的連線中斷問題,執行個體可能不會受到顯著的效能影響。
查看高可用性狀態
您可以使用 Cloud Monitoring 查看 Redis 執行個體的高可用性指標。如要瞭解 Cloud Monitoring 為 Memorystore for Redis 提供的指標,請參閱「監控 Redis 執行個體」和「Memorystore for Redis 支援的監控指標」。
如要查看 Redis 提供的內建複製狀態,請使用 INFO 指令。