調整 Azure 受控 Redis (預覽) 實例
Azure 受控 Redis (預覽版) 有不同的 SKU 和階層供應專案,可提供選擇快取大小和效能的彈性。 您可以相應增加為較大的記憶體大小,或變更為具有更多計算效能的階層。 本文說明如何使用 Azure 入口網站和 Azure PowerShell 與 Azure CLI 等工具來調整快取。
注意
由於 Azure 受控 Redis 的每一層幾乎具有相同的功能,因此調整通常只會用來變更記憶體和效能特性。
重要
目前只支援相應增加至較大的記憶體大小或更高的效能層級。 目前尚不支援相應減少記憶體大小或效能較低的層。
調整類型
Azure 受控 Redis 支援以兩個維度進行調整:
記憶體增加會增加 Redis 實例的大小,讓您能夠儲存更多數據。
vCPU Azure 受控 Redis 提供三個層級(記憶體優化、 平衡和 計算優化),每個記憶體層級都有越來越多的 vCPU。 調整為具有更多 vCPU 的階層會增加實例的效能,而不需要增加記憶體。 與只能使用單一 vCPU 的 Redis 社群版本不同,Azure 受控 Redis 會使用 Redis 企業堆棧,其可以使用多個 vCPU。 這表示 Redis 實例所使用的 vCPU 數目會直接與輸送量和延遲效能相互關聯。
效能層級
有四層可用的 Azure 受控 Redis,每個層級都有不同的效能特性和價格層級。
三層適用於記憶體內部資料:
- 記憶體優化。 適用於需要高記憶體對 vCPU 比率(8:1)但不需要最高輸送量效能的記憶體密集使用案例。 它為需要較少的處理能力或輸送量的案例提供較低的價格點,使其成為開發和測試環境的絕佳選擇。
- 平衡 (記憶體+ 計算 ) 。 提供平衡的記憶體對 vCPU (4:1) 比率,使其非常適合標準工作負載。 它提供記憶體和計算資源的健康平衡。
- 計算優化。 專為需要最大輸送量的效能密集型工作負載而設計,記憶體到 vCPU 的比例較低。2:1。 非常適合需要最高效能的應用程式。
一層會儲存記憶體內部和磁碟上的數據:
- Flash Optimized。 可讓 Redis 叢集自動將較不常存取的數據從記憶體 (RAM) 移至 NVMe 記憶體。 這可降低效能,但允許使用大型數據集進行符合成本效益的快取調整。
階層和 SKU 一目了然
效能 (輸送量和延遲)
如需效能效能評定以及如何測量每個 SKU 和層級效能的詳細資訊,請參閱 使用 Azure 受控 Redis 進行效能測試
調整時機
您可以使用 Azure 受控 Redis 的監視 功能來監視快取的健康情況和效能。 使用該資訊來判斷何時可調整快取。
您可以監視下列計量來判斷是否需要調整。
- CPU
- 高 CPU 使用量表示 Redis 伺服器無法跟上來自所有用戶端的要求。 相應增加至更多 vCPU 有助於將要求分散到多個 Redis 進程。 調整也可協助散發 TLS 加密/解密和連線/中斷連線,以加速使用 TLS 的快取實例。
- 記憶體使用量
- 高記憶體使用量表示就目前的快取大小而言,您的資料大小太大。 請考慮調整為具有較大記憶體的快取大小。
- 用戶端連線
- 每個快取大小都有可支援的用戶端連線數目限制。 如果您的用戶端連線接近快取大小的限制,請考慮調整為較大的記憶體大小或較高的效能層級。
- 如需快取大小連線限制的詳細資訊,請參閱 使用 Azure 受控 Redis 進行效能測試。
- 網路頻寬
- 如果 Redis 伺服器超過可用的頻寬,用戶端要求可能會逾時,因為伺服器將資料推送至用戶端的速度不夠快。 如需查看使用的伺服器端頻寬,請檢查「快取讀取」和「快取寫入」計量。 如果您的 Redis 伺服器超過可用的網路頻寬,請考慮調整為較高的效能層級或較大的快取大小。
- 叢集原則的選擇會影響可用的網路頻寬。 一般而言, OSS 叢集原則的網路頻寬高於 企業 叢集原則。 如需詳細資訊,請參閱 叢集原則
- 如需依快取大小的網路可用頻寬詳細資訊,請參閱 使用 Azure 受控 Redis 進行效能測試。
如需決定要使用的快取定價層的詳細資訊,請參閱 選擇正確的層。
注意
如需如何將調整流程最佳化的詳細資訊,請參閱調整指南的最佳做法
調整 Azure 受控 Redis 的必要條件/限制
- 您無法從記憶體優化、平衡或計算優化層調整為 Flash Optimized 層,反之亦然。
- 您無法從 縮減為具有較少 vCPU 的 SKU。 (跨階層或階層內。
- 即使記憶體大小相同或更多,您也無法縮減為較小的記憶體大小。
- 在某些情況下,調整時,Redis 實例的基礎 IP 位址可能會變更。 實例的 DNS 記錄會變更,而且對大多數應用程式而言都是透明的。 不過,如果您使用 IP 位址來設定快取的連線,或設定 NSG、允許快取流量的防火牆,您的應用程式有時可能會在 DNS 記錄更新之後無法連線。
- 調整異地復寫群組中的實例有一些更多限制。 如需詳細資訊,請參閱異地復寫是否有調整限制?
如何擴充
提示
您可以在一個作業中變更記憶體大小和效能層級。
使用 Azure 入口網站進行調整
若要調整快取,在 Azure 入口網站中瀏覽至快取,然後選取 [資源] 功能表中的 [調整]。
若要擴大,請選擇不同的快取類型,然後選擇 [儲存]。
重要
如果您選取無法調整為的 SKU,則會停用 [ 儲存 ] 選項。 如需允許調整選項的詳細數據,請參閱調整 Azure 受控 Redis 的必要條件/限制一節。
快取調整為新層級時,會顯示 [正在調整 Redis 快取] 通知。
調整完成時,狀態會從 [正在調整] 變更為 [執行中]。
使用 PowerShell 進行調整
您可以使用 Update-AzRedisEnterpriseCache Cmdlet,使用 PowerShell 調整 Azure 受控 Redis 實例。 您可以修改 Sku
屬性,以選取所需的階層和 SKU。 下列範例示範如何將名為 myCache
的快取調整為計算優化 X20 (24 GB) 實例。
Update-AzRedisEnterpriseCache -ResourceGroupName myGroup -Name myCache -Sku ComputeOptimized_X20
使用 Azure CLI 進行調整
若要使用 Azure CLI 調整 Azure 受控 Redis 實例,請呼叫 az redisenterprise update 命令。 您可以修改 sku
屬性,以選取所需的階層和 SKU。 下列範例示範如何將名為 myCache
的快取調整為計算優化 X20 (24 GB) 實例。
az redisenterprise update --cluster-name "myCache" --resource-group "myGroup" --sku "ComputeOptimized_X20"
調整常見問題集
下列清單包含有關 Azure 受控 Redis 調整常見問題的解答。
- 我可以在層級內或跨層級進行調整嗎?
- 調整之後,是否必須變更我的快取名稱或存取金鑰?
- 調整運作方式如何?
- 我是否會在調整期間遺失快取中的資料?
- 是否可以在調整期間使用我的快取?
- 有異地複寫的調整限制嗎?
- 調整需要多長的時間?
- 如何分辨調整何時完成?
- Azure 受控 Redis 是否使用叢集?每個 Azure 受控 Redis SKU 使用多少個分區?
- 如何在叢集中散發索引鍵?
- 我可以建立的最大快取大小為何?
- OSS 和企業叢集原則之間的差異為何?
我可以在層級內或跨層級進行調整嗎?
您一律可以在相同的記憶體大小或相同效能層級內的較大記憶體大小,調整為較高的效能層級。 若要調整為較低的效能層級或較小的記憶體大小,請參閱 調整 Azure 受控 Redis 的必要條件/限制。
調整之後,是否必須變更我的快取名稱或存取金鑰?
否,在調整作業期間,您的快取名稱和金鑰不會變更。
調整運作方式如何?
- 當您調整 Redis 實例時,Redis 叢集中的其中一個節點會關閉並重新佈建為新的大小。 然後透過傳輸的數據,然後另一個節點在重新佈建之前執行類似的故障轉移。 這類似於修補期間發生的程式,或其中一個快取節點失敗。
- 調整為具有更多 vCPU 的實例時,會布建新的分區並新增至 Redis 伺服器叢集。 然後,資料會跨所有分區重新分區化。
如需 Azure 受控 Redis 如何處理分區化的詳細資訊,請參閱 分區化設定。
我是否會在調整期間遺失快取中的資料?
- 如果已啟用高可用性模式,則應該在調整作業期間保留所有數據。
- 如果您要縮小至較小的記憶體層級,如果數據大小超過快取相應減少時的新較小大小,可能會遺失數據。 如果縮小時遺失資料,則會使用 allkeys-lru 收回原則來收回金鑰。
- 如果停用高可用性模式,所有數據都會遺失,而且在調整作業期間無法使用快取。
是否可以在調整期間使用我的快取?
- 在調整作業期間,已啟用高可用性模式的 Azure 受控 Redis 實例仍可供使用。 不過,調整這些快取時可能會發生連線中斷。 這些連線中斷通常很短,Redis 用戶端通常可以立即重新建立其連線。
- 如果停用高可用性模式,Azure 受控 Redis 實例會在調整作業期間脫機。
有異地複寫的調整限制嗎?
設定 作用中異地復 寫之後,您無法在異地復寫群組中混合和比對快取大小。 因此,調整異地復寫群組中的快取需要更多步驟。 如需指示,請參閱 調整異地復寫群組 中的實例。
調整需要多長的時間?
調整時間取決於幾個因素。 以下因素會影響調整所需時間。
- 資料量:較大的資料量需要較長的時間才能複製
- 高寫入要求:較高的寫入數目表示有較多跨節點或跨分區的資料複製
- 高 CPU 使用量:較高的 CPU 使用量表示 Redis 伺服器忙碌中,且 CPU 週期有限,可用來完成數據轉散發
一般而言,當您調整沒有數據的實例時,大約需要 10 分鐘的時間。
如何分辨調整何時完成?
在 Azure 入口網站中,您可以看到調整作業進行中。 調整完成時,快取的狀態會變更為 [執行中] 。
Azure 受控 Redis 是否使用叢集?
不同於 Azure Cache for Redis,Azure 受控 Redis 會跨所有層和 SKU 使用叢集。 叢集可大幅優化效能。 Azure 受控 Redis 的每個 SKU 都會針對可用的 vCPU 數目,針對優化的分區數目進行設定。 用戶無法設定分區數目。
每個 Azure 受控 Redis SKU 使用多少個分區?
因為 Azure 受控 Redis 會在 Redis 企業版軟體上執行,因此分區可用於比社群 Redis 更密集的設定。 若要瞭解每個 SKU 中使用的特定分區數目,請參閱 分區設定。
如何在叢集中散發索引鍵?
依據有關金鑰散發模型的 Redis 文件︰金鑰空間會分割成 16,384 個位置。 每個索引鍵都會雜湊並指派給上述的其中一個位置,而這些位置散發於叢集的各個節點。 您可以設定哪個部分的索引鍵會雜湊,以確保多個索引鍵位於使用主題標籤的相同分區中。
- 具有主題標籤的金鑰 - 如果金鑰的任何部分被括在
{
和}
中,則只有該部分的金鑰會為了判斷金鑰的主題標籤位置而進行雜湊。 例如,下列三個金鑰會位於相同的分區︰{key}1
、{key}2
和{key}3
,因為只會雜湊名稱的key
部分。 如需索引鍵主題標籤規格的完整清單,請參閱索引鍵主題標籤。 - 沒有雜湊標籤的金鑰 - 會將整個金鑰名稱用於雜湊,而產生平均散發於快取分區的結果 (就統計而言)。
如需最佳的效能和輸送量,我們建議平均散發索引鍵。 如果您使用具有主題標籤的金鑰,則應用程式必須負責確保平均散發金鑰。
如需詳細資訊,請參閱金鑰散發模型、Redis 叢集資料分區化和金鑰主題標籤。
我可以建立的最大快取大小為何?
您可以擁有的最大快取大小是 4.5 TB,稱為 Flash Optimized A4500 實例。 Azure Cache for Redis 定價。
OSS 和企業叢集原則之間的差異為何?
OSS 叢集原則與 Community Edition Redis 中使用的叢集方法相同。 一般而言,OSS 叢集原則效能較好。 企業叢集原則會實作叢集,讓客戶端顯示為非叢集 Redis 實例。 這種方法的效能可能較低,但可能會防止用戶端相容性問題。 目前無法切換執行中實例上的叢集原則。 如需詳細資訊,請參閱 叢集原則。