什麼是 Azure Cache for Redis?
Azure Cache for Redis 會提供採用 Redis 軟體的記憶體內部資料存放區。 針對在後端資料存放區上重度使用的應用程式,Redis 可改善其效能和可擴縮性。 其能夠處理大量應用程式要求,方法為將經常存取的資料保留於伺服器記憶體中,以供快速寫入和讀取。 Redis 將重要的低延遲和高輸送量資料儲存解決方案帶入現代應用程式中。
Azure Cache for Redis 提供來自 Redis Inc. 的 Redis 開放原始碼 (OSS Redis) 和商業產品。(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 可在以下層級使用:
層 | 描述 |
---|---|
基本 | 在單一 VM 上執行的 OSS Redis 快取。 此層沒有服務等級協定 (SLA),非常適合用於開發/測試和非關鍵工作負載。 |
標準 | 在複寫設定的兩個 VM 上執行的 OSS Redis 快取。 |
Premium | 高效能 OSS Redis 快取。 這一層提供較高的輸送量、較低的延遲、更佳的可用性,以及更多功能。 相較於基本或標準快取的 VM,進階快取會部署在功能更強大的 VM 上。 |
企業 | Redis Inc. 的 Redis Enterprise 軟體提供高效能快取。 此階層支援 Redis 模組,包括 RediSearch、RedisBloom、RedisJSON 和 RedisTimeSeries。 此外,也提供比進階層級更高的可用性。 |
企業快閃層 | 符合成本效益的大型快取由 Redis Inc. 的 Redis Enterprise 軟體提供技術支援。 此層將 Redis 資料儲存體擴充至 VM 上的非揮發性記憶體,其價格會比 DRAM 低。 這會降低整體個別 GB 記憶體成本。 |
功能比較
Azure Cache for Redis 定價會提供每個層級的詳細比較。 下表可協助說明階層所支援的一些功能:
功能描述 | 基本 | Standard | Premium | Enterprise | 企業快閃層 |
---|---|---|---|---|---|
服務等級協定 (SLA) | No | .是 | .是 | .是 | Yes |
傳輸中資料加密 | Yes | .是 | .是 | .是 | Yes |
網路隔離 | Yes | .是 | .是 | .是 | Yes |
調整大小 | Yes | .是 | .是 | .是 | Yes |
OSS 群集 | No | 無 | .是 | .是 | Yes |
資料持續性 | No | 無 | Yes | 預覽 | 預覽 |
區域備援 | No | 可用 | 可用 | 可用 | 可用 |
異地複寫 | No | No | 是 (被動) | 是 (主動) | 是 (主動) |
連線稽核記錄 | No | No | 是 (以投票為基礎) | 是 (以事件為基礎) | 是 (以事件為基礎) |
Redis 模組 | No | 無 | 無 | Yes | 預覽 |
匯入/匯出 | No | 無 | .是 | .是 | Yes |
重新啟動 | Yes | .是 | 是 | 無 | No |
更新通道和排程更新 | Yes | .是 | 是 | 無 | 無 |
注意
Enterprise Flash 層目前僅支援 RediSearch 模組 (預覽版) 和 RedisJSON 模組。
注意
企業和企業 Flash 層目前僅支持相應增加和相應放大。目前尚不支援相應減少和相應縮小。
選擇正確的階層
在選擇 Azure Cache for Redis 服務層級時,請考慮下列選項:
- 記憶體:基本和標準層提供 250 MB - 53 GB;進階層則提供 6 GB - 1.2 TB;企業層則為 1 GB - 2 企業 Flash 層為 300 GB - 4.5 TB。 若要建立較大的快取執行個體,您可以使用向外延展。如需詳細資訊,請參閱 Azure Redis 快取價格。
- 效能:「進階」層和 Enterprise 層中的快取是部署在處理器較快的硬體上,因此效能優於「基本」層或「標準」層。 Enterprise 層通常對於大部分工作負載都有最佳效能,尤其是使用較大的快取執行個體。 如需詳細資訊,請參閱效能計數器。
- Redis 伺服器的專用核心:C0 以外的所有快取都會執行專用 vCPU。 基本、標準和進階層會執行開放原始碼 Redis,根據設計,Redis 只會使用一個執行緒來處理命令。 在這些層上,擁有更多 vCPU 通常會改善輸送量效能,因為 Azure Cache for Redis 針對 I/O 處理或作業系統程序會使用其他 vCPU。 不過,每個執行個體新增更多 vCPU 可能不會產生線性效能增加。 相應放大在這些層中通常較相應增加提升更多效能。 企業和企業 Flash 層快取會在 Redis 企業版上執行,而 Redis 企業版能夠對每個執行個體利用多個 vCPU,這也可能會大幅提升其他層的效能。 針對企業和企業快閃層,建議在相應放大之前相應增加。
- 網路效能:如果您的工作負載需要高輸送量,與「基本」層或「標準」層相比,「進階」層或 Enterprise 層可提供更大的頻寬。 此外,因為每一層內有裝載快取的基礎 VM,較大型快取還有更大頻寬。 較高的頻寬限制可協助您避免會在應用程式中造成逾時的網路飽和。 如需詳細資訊,請參閱效能計數器。
- 用戶端連線的最大數目:進階層和 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。
您可以在建立快取之後,將快取從基本層相應增加為 Premium。 目前並不支援向下調整至較低層級。 如需調整階層的逐步指示,請參閱如何調整 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,其會與快取執行個體本身分開收費。 目前,Azure Cache for Redis 會吸收這些費用,並不會讓客戶負擔。 這在未來可能會變更。 如需詳細資訊,請參閱負載平衡器定價。
如果已針對多個可用性區域設定 Enterprise 快取,Azure Cache for Redis 會吸收資料傳輸費用,並不會讓客戶負擔。 這在未來可能會變更,其中資料傳輸會以標準網路頻寬費率計費
此外,資料持續性也會新增受控磁碟。 在 Enterprise 資料持續性的公開預覽期間可免費使用這些資源。 當功能正式推出時,這部分可能會有所變更。
可用性依區域劃分
Azure Cache for Redis 會持續擴充到新的區域。 若要確認各區域中是否可提供,請參閱依區域提供的產品。