關於 Azure Cache for Redis
Azure Cache for Redis 會根據 Redis 軟體提供記憶體中的資料存放區。 針對在後端資料存放區上重度使用的應用程式,Redis 可改善其效能和可擴縮性。 其可以處理大量的應用程式要求,方法是將經常存取的資料保留在伺服器記憶體中,以供快速地寫入和讀取。 Redis 將重要的低延遲和高輸送量資料儲存解決方案帶入到現代化的應用程式。
Azure Cache for Redis 同時提供 Redis 開放原始碼 (OSS Redis) 和來自 Redis Inc. (Redis Enterprise) 的商業產品來做為受控服務。 其提供安全且專用的 Redis 伺服器執行個體,以及完整的 Redis API 相容性。 此服務由 Microsoft 運作並裝載於 Azure 上,可供 Azure 內部或外部的任何應用程式使用。
Azure Cache for Redis 可作為分散式資料或內容快取、工作階段存放區和訊息代理程式等等。 它可以獨立部署。 或者,您可以將它和其他 Azure 資料庫服務 (例如 Azure SQL 或 Azure Cosmos DB) 一起部署。
主要案例
Azure Cache for Redis 藉由支援常見的應用程式架構模式來改善應用程式效能。 最常見的一些模式包括:
模式 | 描述 |
---|---|
資料快取 | 資料庫通常太大,無法直接載入快取中。 常見的方法是使用另行快取模式,只在需要時,將資料載入至快取。 系統變更資料時,也會同時更新快取,並散發到其他用戶端。 此外,系統可以在資料上設定到期日,或使用收回原則,觸發資料更新進入快取。 |
內容快取 | 許多網頁都是從使用靜態內容 (例如標題、頁尾、橫幅) 的範本所產生。 這些靜態項目不應該經常變更。 相較於後端資料存放區,使用記憶體內部快取可讓您快速存取靜態內容。 此模式可減少處理時間和伺服器負載,讓網頁伺服器更具回應能力, 並可以讓您減少處理負載所需的伺服器數目。 Azure Cache for Redis 會提供 Redis 輸出快取提供者,以使用 ASP.NET 來支援此模式。 |
工作階段存放區 | 此模式通常會與購物車和其他使用者記錄資料這類資訊搭配使用,而 Web 應用程式則會讓使用者 Cookie 與這些資訊產生關聯。 在 cookie 中儲存太多資料可能會對效能產生負面影響,因為 cookie 的大小會增加,且會與每個要求一起傳遞和驗證。 一般解決方案是使用 Cookie 作為索引鍵,來查詢資料庫中的資料。 當您使用記憶體內部快取,例如Azure Cache for Redis,將資訊與使用者產生關聯的速度會比與完整關係資料庫互動更快。 |
作業與訊息佇列 | 當與要求關聯的工作需要時間執行時,應用程式通常會將工作新增到佇列。 較長的執行作業會排入佇列,而且通常是由另一部伺服器依序處理。 此延後工作的方法稱為工作佇列。 Azure Cache for Redis 提供分散式佇列,以在您的應用程式中啟用此模式。 |
分散式交易 | 應用程式有時需要一系列針對後端資料存放區的命令,以執行單一不可部分完成的作業。 所有命令都必須都成功,或所有命令必須回復為初始狀態。 Azure Cache for Redis 支援以單次交易執行命令批次。 |
Redis 版本
Azure Cache for Redis 支援 OSS Redis 4.0.x 和 6.0.x 版。 我們已決定跳過 Redis 5.0,將您帶到最新版本。 先前,Azure Cache for Redis 會保持單一 Redis 版本。 在未來,其會提供更新的主要版本升級,以及至少一個更舊的穩定版本。 您可以選擇哪一個版本最適合您的應用程式。
服務層
Azure Cache for Redis 可在以下層級中使用:
層 | Description |
---|---|
基本 | 在單一 VM 上執行的 OSS Redis 快取。 此層沒有服務等級協定 (SLA) ,非常適合用於開發/測試和非關鍵工作負載。 |
標準 | 在複寫組態的兩個 VM 上執行的 OSS Redis 快取。 |
Premium | 高效能的 OSS Redis 快取。 這一層提供較高的輸送量、較低的延遲、更佳的可用性,以及更多功能。 相較於基本或標準快取的 VM,進階快取會部署在功能更強大的 VM 上。 |
Enterprise | Redis Inc. 的 Redis Enterprise 軟體提供高效能快取。 此階層支援 Redis 模組,包括 RediSearch、RedisBloom、RedisJSON 和 RedisTimeSeries。 此外,也提供比進階層級更高的可用性。 |
Enterprise Flash | 符合成本效益的大型快取由 Redis Inc. 的 Redis Enterprise 軟體提供技術支援。 此層會將 Redis 資料儲存體延伸至 VM 上比 DRAM 便宜的非volatiatile 記憶體。 Enterprise Flash 可降低每 GB 記憶體的整體成本。 |
功能比較
Azure Cache for Redis 價格會提供每一層的詳細比較。 下表可協助說明階層所支援的一些功能:
功能描述 | 基本 | 標準 | Premium | Enterprise | Enterprise Flash |
---|---|---|---|---|---|
服務等級協定 (SLA) | - | ✔ | ✔ | ✔ | ✔ |
傳輸中資料加密 | ✔ | ✔ | ✔ | ✔ | ✔ |
網路隔離 | ✔ | ✔ | ✔ | ✔ | ✔ |
調整大小 | ✔ | ✔ | ✔ | 預覽 | 預覽 |
OSS 群集 | - | - | ✔ | ✔ | ✔ |
資料持續性 | - | - | ✔ | 預覽 | 預覽 |
區域備援 | - | - | ✔ | ✔ | ✔ |
異地複寫 | - | - | ✔ (被動式) | ✔ (作用中) | ✔ (作用中) |
連線稽核記錄 | - | - | ✔ (輪詢型) | ✔ (事件型) | ✔ (事件型) |
Redis 模組 | - | - | - | ✔ | 預覽 |
匯入/匯出 | - | - | ✔ | ✔ | ✔ |
重新啟動 | ✔ | ✔ | ✔ | - | - |
排程的更新 | ✔ | ✔ | ✔ | - | - |
注意
企業 Flash 層目前僅支援預覽) 和 RedisJSON 模組中的 RediSearch 模組 (。
選擇正確的階層
在選擇 Azure Cache for Redis 服務層級時,請考慮下列選項:
- 記憶體:基本和標準層提供 250 MB - 53 GB;進階層則提供 6 GB - 1.2 TB;Enterprise 層則為 12 GB - 14 TB。 若要建立 120 GB 以上的進階層快取,您可以使用 Redis OSS 叢集。 如需詳細資訊,請參閱 Azure Redis 快取價格。 如需詳細資訊,請參閱 如何設定進階 Azure Redis 快取的叢集功能。
- 效能:「進階」層和 Enterprise 層中的快取是部署在處理器較快的硬體上,因此效能優於「基本」層或「標準」層。 高階層快取的輸送量較高,延遲性較低。 如需詳細資訊,請參閱 Azure Cache for Redis 效能。
- Redis 伺服器的專用核心:除了 C0 的所有快取都會執行專用 VM 核心。 根據設計,Redis 只會使用一個執行緒來處理命令。 Azure Cache for Redis 是使用其他核心來進行 I/O 處理。 擁有更多核心會改善輸送量效能,即使其可能不會產生線性擴增。 此外,較大的 VM 大小一般會比小一點的大小有更高的頻寬限制。 這可協助您避免在應用程式中造成逾時的網路飽和度。
- 網路效能:如果您的工作負載需要高輸送量,與「基本」層或「標準」層相比,「進階」層或 Enterprise 層可提供更大的頻寬。 此外,因為每一層內有裝載快取的基礎 VM,較大型快取還有更大頻寬。 如需詳細資訊,請參閱 Azure Cache for Redis 效能。
- 用戶端連線的最大數目:進階層和 Enterprise 層提供可連線至 Redis 的最大用戶端數目,為較大型的快取提供更高的連線數目。 叢集會增加可供叢集快取使用的網路頻寬總數。
- 高可用性:Azure Cache for Redis 提供多個高可用性選項。 我們的 SLA 保證標準、進階或 Enterprise 快取的可用性。 SLA 的範圍僅涵蓋與快取端點的連線。 SLA 未涵蓋資料遺失防護。 建議您使用進階層和 Enterprise 層中的 Redis 資料永續性功能,以增加資料遺失時的復原能力。
- 資料持續性:進階層和 Enterprise 層可讓您分別將快取資料保存到Azure 儲存體帳戶和受控磁碟。 基礎結構發生問題,可能會導致資料遺失。 建議您使用這些層級中的 Redis 資料持續性功能,以增加資料遺失時的復原能力。 Azure Cache for Redis 提供 RDB 和 AOF (預覽) 選項。 您可以透過 Azure 入口網站和 CLI 來啟用資料持續性。 如需進階層的詳細資訊,請參閱如何設定進階 Azure Cache for Redis 的持續性。
- 網路隔離:Azure Private Link 和虛擬網路 (VNET) 部署可為您的 Azure Cache for Redis 提供增強的安全性和流量隔離。 VNET 可讓您透過網路存取控制原則進一步限制存取。 如需詳細資訊,請參閱具備 Azure Private Link 的 Azure Cache for Redis 以及如何設定進階 Azure Cache for Redis 的虛擬網路支援。
- Redis 模組:Enterprise 層支援 RediSearch、RedisBloom、RedisTimeSeries 和 RedisJSON (預覽版)。 這些模組會將新的資料類型和功能新增至 Redis。
建立後,您可以將快取從基本層擴充至進階層。 目前並不支援向下調整至較低層級。 如需逐步調整指示,請參閱如何調整Azure Cache for Redis和如何調整 - 基本、標準和進階層。
Enterprise 層的特殊考量
Enterprise 層依賴 Redis Enterprise,這是 Redis Inc. 的 Redis 商業變體,客戶透過 Azure Marketplace 供應項目取得並支付此軟體的授權。 Azure Cache for Redis 會管理授權取得,因此您不需要個別執行此動作。 您必須具備以下先決條件,才能在 Azure Marketplace 中購買:
- 您的 Azure 訂用帳戶具有有效的付款條件。 不支援 Azure 點數或免費 MSDN 訂用帳戶。
- 您的組織允許 Azure Marketplace 購買。
- 如果您使用私人 Marketplace,其必須包含 Redis Inc. Enterprise 供應項目。
重要
Azure Cache for Redis Enterprise 需要標準網路 Load Balancer,其會與快取執行個體本身分開收費。 如需詳細資訊,請參閱負載平衡器定價。
如果已針對多個可用性區域設定 Enterprise 快取,則資料傳輸會以 2022 年 7 月 1 日開始的標準網路頻寬費率來計費。
此外,資料持續性也會新增受控磁碟。 在 Enterprise 資料持續性的公開預覽期間可免費使用這些資源。 當功能正式推出時,這部分可能會有所變更。
依區域的可用性
Azure Cache for Redis 會持續擴充到新的區域。 若要確認各區域中是否可提供,請參閱依區域提供的產品。