【Azure Redis 快取】Azure Redis功能性討論
2021-01-13 21:30:16 軟體

關於使用Azure Redis服務在以下九大方面的功能性的解說:

  1. 高可用
  2. 備份可靠性
  3. 設定自動化
  4. 部署多樣性
  5. 快速回檔功能
  6. 資料擴容
  7. SLA穩定性
  8. 資料安全性
  9. 監控系統

 

一:高可用

Azure Cache for Redis 具有內建的高可用性。 其高可用性體系結構的目標是確保託管的 Redis 範例正常執行,即使其基礎虛擬機器器 (VM) 受計劃內或計劃外中斷的影響。 它提供的可用性百分比率要遠高於將 Redis 承載在單個 VM 上的情況。使用多個稱為「節點」的用於快取的 VM 來實現高可用性。 它將這些節點設定為以協調的方式進行資料複製和故障轉移。 它還會協調維護操作,例如 Redis 升級維護等。

預設情況下,在「標準」或「高階」層級中,Azure Cache for Redis 在一對 Redis 伺服器上執行。 這兩個伺服器託管在專用 VM 上。 開源 Redis 只允許一臺伺服器處理資料寫入請求。 此伺服器是主要節點,而另一伺服器是副本。 預配伺服器節點後,Azure Cache for Redis 可向其分配主要角色和副本角色。 主要節點通常負責為來自 Redis 使用者端的寫入和讀取請求提供服務。 

 

 

更多詳細說明,請見:https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-high-availability

 通常,Redis 使用者端會與 Redis 快取中的主節點通訊,以獲取所有讀取和寫入請求。 某些 Redis 使用者端可以設定為從副本節點進行讀取。

 

二:備份可靠性

Redis 暫留可讓你保留儲存在 Redis 中的資料。 還可以獲取快照並備份資料,以便在出現硬體故障時進行載入。儲存資料時,Azure 儲存會自動加密資料。 支援自動備份和手動備份,備份存放在共用儲存上,不佔用本地磁碟空間;可以參考 https://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命令可用於更新屬性,例如 SizeSkuEnableNonSslPort 和 RedisConfiguration 值。

#更新名為 myCache 的 Azure Redis 快取的 maxmemory-policy
Set-AzRedisCache -ResourceGroupName "myGroup" -Name "myCache" -RedisConfiguration @{"maxmemory-policy" = "allkeys-random"}

可自定義資料庫多種設定引數,但需要自己編寫相應程式碼和指令碼,參考檔案:https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-manage-redis-cache-powershell

 

四:部署多樣性

Azure Redis提供不同的級別:

  • 基本:基本快取是單個快取節點,適用於開發/測試和非關鍵型工作負荷。
  • 標準:基於主/從複製的生產級別快取服務。
  • 高階:適合企業的級別,可用作快取和暫留資料。專為最大規模和企業整合而設計。

標準版支援主從,高階版支援主從/叢集方式部署。參考檔案:https://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 快取設定資料暫留https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-premium-persistence
在 Azure Redis 快取中匯入和匯出資料https://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%

AZURE CACHE FOR REDIS 的高可用性
選項說明可用性標準高階Enterprise
標準複製 單個資料中心或可用性區域 (AZ) 中具有自動故障轉移功能的雙節點複製設定 99.9%

-

Enterprise 群集 連結了兩個區域中的快取範例,提供自動故障轉移 99.9% - -

異地複製 兩個區域中的連結快取範例,具有使用者控制的故障轉移 99.9%(對於單個區域) -

-

Azure Cache for Redis 的高可用性: https://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 Redishttps://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-private-link

為高階 Azure Cache for Redis 設定虛擬網路支援https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-premium-vnet

 

九:監控系統

支援對Redis範例資訊的視覺化監控(監控內容包括但不限於CPU利用率、連線數、Memory等),可以根據指標設定相應的警報:

 

 

 如何監視用於 Redis 的 Azure 快取: https://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 值的詳細資訊,請參閱 可用度量值和報告間隔