【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 值的詳細資訊,請參閱 可用度量值和報告間隔。