【Azure Redis 緩存】Azure Redis功能性討論
- 2021 年 1 月 13 日
- 筆記
- 【Azure Redis 緩存】, Azure Redis, 九大性能點解說
關於使用Azure Redis服務在以下九大方面的功能性的解說:
- 高可用
- 備份可靠性
- 配置自動化
- 部署多樣性
- 快速回檔功能
- 數據擴容
- SLA穩定性
- 數據安全性
- 監控系統
一:高可用
Azure Cache for Redis 具有內置的高可用性。 其高可用性體系結構的目標是確保託管的 Redis 實例正常運行,即使其基礎虛擬機 (VM) 受計劃內或計劃外中斷的影響。 它提供的可用性百分比率要遠高於將 Redis 承載在單個 VM 上的情況。使用多個稱為「節點」的用於緩存的 VM 來實現高可用性。 它將這些節點配置為以協調的方式進行數據複製和故障轉移。 它還會協調維護操作,例如 Redis 升級維護等。
默認情況下,在「標準」或「高級」層級中,Azure Cache for Redis 在一對 Redis 服務器上運行。 這兩個服務器託管在專用 VM 上。 開源 Redis 只允許一台服務器處理數據寫入請求。 此服務器是主要節點,而另一服務器是副本。 預配服務器節點後,Azure Cache for Redis 可向其分配主要角色和副本角色。 主要節點通常負責為來自 Redis 客戶端的寫入和讀取請求提供服務。
更多詳細說明,請見://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-high-availability
通常,Redis 客戶端會與 Redis 緩存中的主節點通信,以獲取所有讀取和寫入請求。 某些 Redis 客戶端可以配置為從副本節點進行讀取。
二:備份可靠性
Redis 暫留可讓你保留存儲在 Redis 中的數據。 還可以獲取快照並備份數據,以便在出現硬件故障時進行加載。保存數據時,Azure 存儲會自動加密數據。 支持自動備份和手動備份,備份存放在共享存儲上,不佔用本地磁盤空間;可以參考 //docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-premium-persistence
Azure Redis 緩存使用以下模型提供 Redis 暫留:
- RDB 暫留 – 配置 RDB(Redis 數據庫)暫留以後,Azure Redis 緩存按照可配置的備份頻率,將 Azure Redis 緩存的快照以 Redis 二進制格式暫留在磁盤上。 如果發生了災難性事件,導致主緩存和副緩存都無法使用,則會使用最新快照重新構造緩存。 詳細了解 RDB 暫留的優點和缺點。
- AOF 暫留 – 配置 AOF(僅追加文件)暫留後,Azure Redis 緩存將每個寫入操作保存到日誌,此日誌每秒至少保存到 Microsoft Azure 存儲帳戶一次。 如果發生了災難性事件,導致主緩存和副緩存都無法使用,則會使用存儲的寫入操作重新構造緩存。 詳細了解 AOF 暫留的優點和缺點。
三:配置自動化
可使用PowerShell腳本一鍵式創建數據庫實例:
#創建名為 myCache 的 Azure Redis New-AzRedisCache -ResourceGroupName myGroup -Name mycache -Location "China North"
而Set-AzRedisCache命令
可用於更新屬性,例如 Size
、Sku
、EnableNonSslPort
和 RedisConfiguration
值。
#更新名為 myCache 的 Azure Redis 緩存的 maxmemory-policy Set-AzRedisCache -ResourceGroupName "myGroup" -Name "myCache" -RedisConfiguration @{"maxmemory-policy" = "allkeys-random"}
可自定義數據庫多種配置參數,但需要自己編寫相應代碼和腳本,參考文檔://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-manage-redis-cache-powershell
四:部署多樣性
Azure Redis提供不同的級別:
- 基本:基本緩存是單個緩存節點,適用於開發/測試和非關鍵型工作負荷。
- 標準:基於主/從複製的生產級別緩存服務。
- 高級:適合企業的級別,可用作緩存和暫留數據。專為最大規模和企業集成而設計。
標準版支持主從,高級版支持主從/集群方式部署。參考文檔://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-premium-clustering
什麼是 Redis 群集?
Azure Redis 緩存提供的 Redis 群集與 在 Redis 中實施的一樣。 Redis 群集具有以下優勢:
- 能夠在多個節點中自動拆分數據集。
- 能夠在部分節點遇到故障或無法與群集其餘部分通信的情況下繼續運行。
- 更大的吞吐量:增加分片數時,吞吐量呈線性增加。
- 更大的內存大小:增加分片數時,內存大小呈線性增加。
五:快速回檔功能
啟用Redis數據暫留後,支持自動備份和數據恢復。Redis可以自動獲取快照並備份數據,以便在出現硬件故障時進行加載。
導入/導出是一種 Azure Redis 緩存數據管理操作,可用於通過從高級緩存導入 Azure Redis 緩存數據庫 (RDB) 快照以及將 Azure Redis 緩存數據庫 (RDB) 快照導出到 Azure 存儲帳戶中的 blob 來相應地將數據導入到 Azure Redis 緩存以及從 Azure Redis 緩存導出數據。
- 導出 – 可以將 Azure Redis 緩存 RDB 快照導出到頁 Blob。
- 導入 – 可以從頁 Blob 或塊 Blob 導入 Azure Redis 緩存 RDB 快照。
通過導入/導出可在不同的 Azure Redis 緩存實例之間進行遷移,或者在使用之前使用數據填充緩存。參考文檔:
如何為高級 Azure Redis 緩存配置數據暫留://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-premium-persistence
在 Azure Redis 緩存中導入和導出數據://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-import-export-data
六:數據擴容
Azure Redis 緩存具有不同的緩存產品/服務,使緩存大小和功能的選擇更加靈活。 如果創建緩存後,應用程序的要求發生更改,可以更改緩存的大小和定價層。支持按需擴容,包括但不限於數據容量、可讀實例和副本數量;支持無縫擴容,可不中斷服務,對上層業務透明。
可以擴展到不同定價層,但有以下限制:
- 不能從較高的定價層縮放到較低的定價層。
- 不能從高級緩存向下縮放到標準或基本緩存。
- 不能從標準緩存向下縮放到基本緩存。
- 可從基本緩存縮放到標準緩存,但不能同時更改大小。 如果需要不同大小,則可以執行後續縮放操作以縮放為所需大小。
- 不能從基本緩存直接縮放到高級緩存。 首先在一個縮放操作中從基本縮放到標準,然後在後續的縮放操作中從標準縮放到高級。
- 不能從較大的大小減小為 C0 (250 MB) 。
在縮放過程中,緩存是否可用?
- 標準和高級緩存在縮放操作期間保持可用。 但是,縮放標準和高級緩存時,以及從基本緩存縮放到標準緩存時,可能會發生連接故障。 這些連接故障預期為很小的故障,redis 客戶端應能立即重新建立連接。
- 基本緩存在縮放為不同大小的操作期間處於脫機狀態。 基本緩存在從基本縮放到標準時仍然可用,但可能會出現較小的連接故障。 如果發生連接故障,redis 客戶端應能立即重新建立連接。
詳細操作請見:如何縮放 Azure Redis 緩存
七:SLA穩定性
支持主從和集群架構,自動進行容災切換和故障遷移;可用性保障不低於99.9% –基礎版沒有SLA保證,其他版本都不低於99.9%
選項 | 說明 | 可用性 | 標準 | 高級 | Enterprise |
---|---|---|---|---|---|
標準複製 | 單個數據中心或可用性區域 (AZ) 中具有自動故障轉移功能的雙節點複製配置 | 99.9% | ✔ | ✔ |
– |
Enterprise 群集 | 鏈接了兩個區域中的緩存實例,提供自動故障轉移 | 99.9% | – | – |
✔ |
異地複製 | 兩個區域中的鏈接緩存實例,具有用戶控制的故障轉移 | 99.9%(對於單個區域) | – | ✔ |
– |
Azure Cache for Redis 的高可用性: //docs.azure.cn/zh-cn/azure-cache-for-redis/cache-high-availability
八:數據安全性
Azure底層有相關的安全防護確保數據的存儲安全,而在傳輸方面,默認使用SSL訪問(6380)使用TLS1.2加密套件保證在數據傳輸中的安全。同時也可以隔離Redis,通過專用鏈接或VNET來實現網絡隔離:Azure 專用鏈接和虛擬網絡 (VNET) 部署為 Azure Cache for Redis 提供增強的安全性和流量隔離。 使用 VNET,可以進一步通過網絡訪問控制策略來限制訪問。
Azure 專用鏈接的 Azure Cache for Redis://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-private-link
為高級 Azure Cache for Redis 配置虛擬網絡支持://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-premium-vnet
九:監控系統
支持對Redis實例信息的可視化監控(監控內容包括但不限於CPU利用率、連接數、Memory等),可以根據指標配置相應的警報:
如何監視用於 Redis 的 Azure 緩存: //docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-monitor
用於 Redis 的 Azure 緩存使用 Azure Monitor 提供用於監視緩存實例的幾個選項。 可以查看度量值、將度量值圖表固定到啟動板、自定義監視圖表的日期和時間範圍、在圖表中添加和刪除度量值,以及設置符合特定條件時發出的警報。 藉助這些工具,可以監視 Azure Redis 緩存實例的運行狀況,以及管理緩存應用程序。
每分鐘使用 Redis INFO 命令收集約兩次用於 Redis 的 Azure 緩存實例的指標,然後將其自動存儲 30 天(請參閱導出緩存指標以配置不同保留期策略),以便這些指標可以顯示在指標圖表中並由預警規則進行評估。 有關用於每個緩存度量值的不同 INFO 值的詳細信息,請參閱 可用度量值和報告間隔。