Memorystore for Redis 的高可用性

本頁面說明標準級 Memorystore for Redis 執行個體的高可用性 (HA)。

標準級會將資料複製到一或多個副本,並提供快速的自動容錯移轉功能,將 Redis 執行個體移轉至副本,以防範常見的故障。

標準級會佈建一個主要執行個體和一或多個副本。如果標準級執行個體停用 readReplicaMode 設定,則只會有一個非唯讀備用資源。啟用這項設定的標準級執行個體會有一到五個唯讀備用資源。如要判斷是否已啟用這項設定,請參閱查看執行個體的唯讀備用資源資訊

Memorystore for Redis 會將主要執行個體複製到一或多個副本,以提供高可用性。Memorystore for Redis 會使用非同步複製通訊協定,將您對主要執行個體資料所做的任何變更複製到副本。由於複製作業具有非同步特性,且視主要執行個體的寫入率而定,備用資源可能會落後執行個體。

如果主要執行個體發生故障,執行個體會自動容錯移轉至副本。如果執行個體有多個副本,系統會自動將執行個體容錯移轉至複製延遲時間最短的正常副本。

如果將執行個體設定為只有一個非讀取副本,Memorystore for Redis 會將所有應用程式連線導向主要端點。如果將執行個體設定為使用唯讀備用資源,應用程式也可以使用讀取端點,將讀取查詢分散到所有備用資源。

發生容錯移轉時

主要執行個體失效時,就會發生容錯移轉。容錯移轉期間,主要執行個體和讀取端點會自動重新導向至新的主要執行個體和備用資源。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 指令。