Azure Cache for Redis 和可靠性
Azure Cache for Redis 根據 Redis (Remote Dictionary Server) 軟體提供記憶體內部資料存放區。 這是安全的資料快取和訊息代理程式,為應用程式提供高輸送量且低延遲的資料存取。
支援可靠性的重要概念和最佳做法包括:
下列各節包含 Azure Cache for Redis 特有的設計考量、設定檢查清單及建議的設定選項。
設計考量
Azure Cache for Redis 服務等級協定 (SLA) 只涵蓋標準層和進階層快取。 不涵蓋基本層。
Redis 是機碼值組的記憶體內部快取,預設有高可用性 (HA),但基本層除外。 Azure Cache for Redis 有三個階層:
基本:不建議用於生產工作負載。 基本層適用於:
- 單一節點
- 多種大小
- 部署
- 測試
- 非關鍵性工作負載
標準:雙節點主要和次要設定中的複寫快取,由 Microsoft 管理,具有高可用性 SLA。
進階:涵蓋所有標準層功能,還包含下列其他功能:
- 硬體和效能都比基本層或標準層更快。
- 快取更大,最大到
120GB
。 - 資料持續性,包括 Redis 資料庫檔案 (RDB) 和僅附加檔案 (AOF)。
- VNET 支援。
- Clustering (叢集)
- 異地複寫:次要快取位於另一個區域,並從主要快取複寫資料,以確保災害復原。 若要容錯移轉至次要快取,必須手動取消連結快取,次要快取才可供寫入。 需要以次要快取的快取連接字串來更新寫入 Redis 的應用程式。
- 可用性區域:跨可用性區域部署快取和複本。
注意
每個部署預設為每個分區各一個複本。 目前,對於具有多個複本的部署,持續性、群集和異地複寫全部停用。 節點會平均分散到所有區域。 您的複本計數應該
>=
區域數目。 - 匯入和匯出。
Microsoft 保證客戶在快取端點與 Microsoft 的網際網路閘道之間至少 99.9%
的時間有連線能力。
檢查清單
設定 Azure Cache for Redis 時,您是否考量到復原能力?
- 更新排程。
- 監視快取並設定警示。
- 在 VNET 內部署快取。
- 評估 Redis 快取內的資料分割策略。
- 視業務需求而定,設定資料持續性將快取的複本儲存至 Azure 儲存體,或使用異地複寫。
- 在 Azure Redis 快取的背景下實作重試原則。
- 對 Redis 使用一個靜態或單一實作的連線多工器,並遵循最佳做法指南。
- 檢閱如何管理 Azure Cache for Redis。
組態建議
探索下表中的建議,將 Azure Cache for Redis 設定最佳化,以提升服務可靠性:
建議 | 描述 |
---|---|
更新排程。 | 排程將 Redis 伺服器更新套用至快取的日期和時間,這不包括 Azure 更新或 VM 作業系統的更新。 |
監視快取並設定警示。 | 為例外狀況、高 CPU、高記憶體使用量、伺服器負載和收回的金鑰設定警示,以深入解析何時縮放快取。 如果需要縮放快取,則了解何時縮放很重要,因為在縮放活動遷移資料期間會增加 CPU。 |
在 VNET 內部署快取。 | 讓客戶進一步控制可連線至快取的流量。 請確定子網路有足夠的位址空間可供部署快取節點和分區 (叢集)。 |
評估 Redis 快取內的資料分割策略。 | 分割 Redis 資料存放區涉及跨 Redis 伺服器的執行個體分割資料。 每個執行個體構成單一分割區。 Azure Redis 快取在幕後抽取 Redis 服務,而不直接公開。 實作資料分割的最簡單方式是建立多個 Azure Redis 快取執行個體,並將資料分佈於它們之間。 您可以將每個資料項目關聯至指定哪個快取要儲存資料項目的識別碼 (分割區索引鍵)。 用戶端應用程式邏輯接著可以使用這個識別碼,將要求路由傳送至適當的分割區。 此配置很簡單,但如果資料分割配置有所變更 (例如,建立額外 Azure Redis 快取執行個體),則用戶端應用程式可能需要重新設定。 |
視業務需求而定,設定資料持續性將快取的複本儲存至 Azure 儲存體,或使用異地複寫。 | 資料持續性:如果正本和複本重新開機,則會從儲存體帳戶自動載入資料。 異地複寫:次要快取與主要快取需要取消連結。 次要現在變成主要,還可以接收「寫入」。 |
在 Azure Redis 快取的背景下實作重試原則。 | 大多數的 Azure 服務與用戶端 SDK 皆包含重試機制, 因為每個服務各有不同的特性和需求,這些機制也有所不同。 每個重試機制針對特定服務而調整。 |
檢閱如何管理 Azure Cache for Redis。 | 了解快取重新開機為何會遺失資料,以及如何測試應用程式的復原能力。 |
來源成品
若要識別不在進階層的 Redis 執行個體,請使用下列查詢:
Resources
| where type == 'microsoft.cache/redis'
| where properties.sku.name != 'Premium'