共用方式為


企業層和 Enterprise Flash 層的最佳做法為何

以下是使用 Azure Cache for Redis 的企業層和 Enterprise Flash 層時的最佳做法。

區域備援

強烈建議您在區域備援設定中部署新的快取。 區域備援可確保 Redis Enterprise 節點會分散到三個可用性區域,進而提升資料中心層級中斷時的備援能力。 使用區域備援可提高可用性。 如需詳細資訊,請參閱線上服務的服務等級協定 (SLA)

區域備援對企業層而言十分重要,因為您的快取執行個體一律會使用至少三個節點。 兩個節點是資料節點 (用來保存資料),一個是仲裁節點。 增加容量可讓您以偶數增量調整資料節點數目。

另外還有一個節點稱為仲裁節點。 此節點會監視資料節點,並在發生容錯移轉時自動選取新的主要節點。 區域備援可確保節點會平均分散到三個可用性區域,而將仲裁遺失的可能性降至最低。 客戶無須為仲裁節點付費,且使用區域備援的費用僅止於區域內頻寬費用

調整大小

在 Azure Cache for Redis 的企業層和 Enterprise Flash 層中,建議擴大的優先順序應高於擴增。優先進行擴大,因為企業層是以 Redis Enterprise 作為建置基礎,能夠在較大的 VM 中使用更多 CPU 核心。

反之,基本、標準和進階層的建置基礎為開放原始碼 Redis,因此適用相反的建議。 在這些層中,多數情況下我們建議擴增的優先順序應高於擴大

分區化和 CPU 使用率

在 Azure Cache for Redis 的基本、標準和進階層中,很容易判斷使用的虛擬 CPU 數目 (vCPU)。 每個 Redis 節點都會在專用的虛擬機 (VM) 上執行。 Redis 伺服器程序是單一執行緒,在每個主要節點和每個複本節點上使用一個 vCPU。 VM 上的其他 vCPU 也用於其他活動,例如不同工作的工作流程協調、狀況監控和 TLS 負載等。

使用叢集的效果是可將資料分散到多個節點,且每個節點各有一個分區。 藉由增加分區數目,您所使用的 vCPU 數目會根據叢集中的分區數目線性增加。

另一方面,Redis Enterprise 可對 Redis 執行個體本身使用多個 vCPU。 換句話說,Azure Cache for Redis 的所有層都可使用多個 vCPU 來處理背景和監視工作,但只有企業層和 Enterprise Flash 層能夠對 Redis 分區的每個 VM 使用多個 vCPU。 下表顯示用於每個 SKU 和容量 (即擴增) 設定的有效 vCPU 數目。

表格中顯示用於主要分區的 vCPU 數目,而不是複本分區。 分區不會與 vCPU 數目一一對應。 表格中僅說明 vCPU,而非分區。 某些設定使用比可用 vCPU 還多的分區,以提升某些使用案例中的效能。

E1 (預覽)

Capacity 有效的 vCPU
2 1 (高載)

E5

Capacity 有效的 vCPU
2 1
4 2
6 6

E10

Capacity 有效的 vCPU
2 2
4 6
6 6
8 16
10 20

E20

Capacity 有效的 vCPU
2 2
4 6
6 6
8 16
10 20

E50

Capacity 有效的 vCPU
2 6
4 6
6 6
8 30
10 30

E100

Capacity 有效的 vCPU
2 6
4 30
6 30
8 30
10 30

E200

Capacity 有效的 vCPU
2 30
4 60
6 60
8 120
10 120

E400

Capacity 有效的 vCPU
2 60
4 120
6 120
8 240
10 240

F300

Capacity 有效的 vCPU
3 6
9 30

F700

Capacity 有效的 vCPU
3 30
9 30

F1500

Capacity 有效的 vCPU
3 30
9 90

Enterprise 上的叢集

相對於基本、標準和進階層,企業層和 Enterprise Flash 層在本質上進行了叢集化。 實作方式取決於選取的叢集原則。 企業層提供兩個叢集原則選項:OSS企業。 對於大部分的應用程式建議使用 OSS 叢集原則,因為它支援較高的最大輸送量,但每個版本都有其優缺點。

OSS 叢集原則會實作與開放原始碼 Redis 相同的 Redis 叢集 API。 Redis 叢集 API 可讓 Redis 用戶端直接連線至每個 Redis 節點,而將延遲降到最低,並將網路輸送量最佳化。 因此,以更多節點擴增叢集時,將可獲得近乎線性的可擴縮性。 OSS 叢集原則通常可提供最理想的延遲和輸送量效能,您的用戶端程式庫必須支援 Redis 叢集。 OSS 叢集原則也無法與 RediSearch 模組搭配使用。

企業叢集原則是更簡單的設定,會使用單一端點來處理所有用戶端連線。 使用企業叢集原則時,會將所有要求路由傳送至單一 Redis 節點,而該節點後續將作為 Proxy,在內部將要求路由傳送至叢集中的正確節點。 這種方法的優點是,Redis 用戶端程式庫無須支援 Redis 叢集即可運用多個節點。 缺點是,在計算使用率或網路輸送量中,單一節點 Proxy 可能會成為瓶頸。 企業叢集原則是唯一可與 RediSearch 模組搭配使用的叢集原則。

多鍵命令

由於企業層使用叢集設定,您可能會看到對多個索引鍵操作的命令出現 CROSSSLOT 例外狀況。 具體行為會隨著使用的叢集原則而不同。 如果您使用 OSS 叢集原則,多鍵命令會要求所有索引鍵都對應至相同的雜湊位置

您也可能看到企業叢集原則出現 CROSSSLOT 錯誤。 企業叢集的位置間僅允許使用下列多鍵命令:DELMSETMGETEXISTSUNLINKTOUCH

在主動-主動資料庫中,只能對位於相同位置的索引鍵執行多鍵寫入命令 (DELMSETUNLINK)。 不過,在主動-主動資料庫中的位置間允許使用下列多鍵命令:MGETEXISTSTOUCH。 如需詳細資訊,請參閱資料庫叢集

企業 Flash 最佳做法

企業 Flash 層會同時使用 NVMe Flash 記憶體和 RAM。 由於 Flash 記憶體成本較低,因此使用企業 Flash 層可讓您以降低價格效率來取捨一些效能。

在企業 Flash 實例上,20% 的快取空間位於 RAM 上,而其他 80% 則使用 Flash 記憶體。 所有密鑰都會儲存在 RAM 上,而可以儲存在 Flash 記憶體或 RAM 中。 Redis 軟體會以智慧方式判斷值的位置。 經常存取的經常 性值會儲存在 RAM 上,而 較不常使用的冷 值則會保留在 Flash 上。 在讀取或寫入數據之前,必須將它移至 RAM,成為 經常性 數據。

由於 Redis 會針對最佳效能優化,因此實例會先填滿可用的 RAM,再將專案新增至 Flash 記憶體。 填滿 RAM 首先對效能有一些影響:

  • 以低記憶體使用量進行測試時,可能會發生更佳的效能和較低的延遲。 使用完整快取實例進行測試可能會降低效能,因為只有 RAM 用於記憶體使用量低的測試階段。
  • 當您將更多數據寫入快取時,相較於快閃記憶體,RAM 中的數據比例會降低,通常也會降低延遲和輸送量效能。

適用於企業 Flash 層的工作負載

在企業 Flash 層上可能執行良好的工作負載通常具有下列特性:

  • 讀取繁重,具有高比率的讀取命令來寫入命令。
  • 存取著重於索引鍵的子集,這些索引鍵的使用頻率會比數據集的其餘部分更頻繁。
  • 與索引鍵名稱相比,相對較大的值。 (因為索引鍵名稱一律會儲存在 RAM 中,因此大型值可能會成為記憶體成長的瓶頸。

不適合企業 Flash 層的工作負載

某些工作負載具有較不針對 Flash 層設計優化的存取特性:

  • 寫入繁重的工作負載。
  • 大部分數據集的隨機或統一數據存取模式。
  • 具有相對較小的值大小之長索引鍵名稱。

使用作用中異地複寫處理區域關閉案例

作用中異地複寫是一項強大的功能,可在您使用 Azure Cache for Redis 的企業層時大幅提升可用性。 但若發生區域性中斷,則應採取相關步驟來準備快取。

例如,考慮使用下列提示:

  • 事先確認在一個區域失效時,要切換至異地複寫群組中的哪個其他快取。
  • 確定已設定防火牆,讓任何應用程式和用戶端都可存取已識別的備份快取。
  • 異地複寫群組中的每個快取都有其本身的存取金鑰。 請確認在設定備份快取的目標時,應用程式如何切換至不同的存取金鑰。
  • 如果異地複寫群組中的快取失效,則異地複寫群組中的所有快取都會開始建置中繼資料。 在寫入可再次同步至所有快取之前,無法捨棄中繼資料。 您可以將失效的快取強制取消連結,藉以防止中繼資料建置。 請考慮監視快取中的可用記憶體,並在有記憶體壓力時取消連結,對於大量寫入工作負載尤為如此。

此外也可以使用斷路器模式。 使用此模式,可自動將流量從發生區域中斷的快取重新導向至相同異地複寫群組中的備份快取。 使用 Azure 流量管理員Azure Load Balancer 等 Azure 服務來啟用重新導向。

資料持續性與資料備份

企業層和 Enterprise Flash 層中的資料持續性功能的用途是在快取失效時自動提供資料的快速復原點。 藉由將 RDB 或 AOF 檔案儲存在掛接至快取執行個體的受控磁碟中,即可進行快速復原。 使用者無法存取磁碟上的持續性檔案。

許多客戶都想利用持續性定期備份其快取上的資料。 我們不建議以這種方式使用資料持續性。 此時應使用匯入/匯出功能。 您可以將 RDB 格式的快取資料複本直接匯出至您選擇的儲存體帳戶,並視需要隨時觸發資料匯出。 您可以從入口網站或使用 CLI、PowerShell 或 SDK 工具觸發匯出作業。

E1 (預覽) SKU 限制

E1 (預覽) SKU 主要適用於開發/測試案例。 E1 會在較小的 高載 VM 上執行。 高載 VM 會根據耗用多少 CPU 來提供可變效能。 與其他企業 SKU 供應專案不同,您無法 相應放大 E1 SKU,不過仍可 相應增加 至較大的 SKU。 E1 SKU 也不支持 主動式異地複寫