【Azure Redis 快取】Azure Redis 功能性討論二

路邊兩盞燈發表於2021-03-03

繼承上一次討論了Azure Redis的可用性,可靠性,穩定性,安全性,監控方面的九大功能點。詳情可回顧文章:【Azure Redis 快取】Azure Redis功能性討論

【Azure Redis 快取】Azure Redis 功能性討論二

這次我們繼續討論Azure Redis的以下六點問題:

  1:Redis能否暫停或重啟

2:Redis群集擴大分片後能否縮小

3:Redis預設是否會備份,基礎和標準版本如何備份資料?

4:RDB 暫留和AOF 暫留有什麼區別

5:設定計劃更新後,更新開始前後,redis是否可以繼續使用

6:異地複製

一:Redis能否暫停或重啟

可以重啟,但是不能暫停。除基本定價層的Redis外,其他都是有主/從(副本)兩個節點,如果只重新啟動其中一個節點,資料通常不會丟失,但仍然存在丟失的可能。重啟的操作會根據重啟的節點不同對已連線的客戶端有不同的影響:

  • 主 - 重新啟動主節點時,Redis 會發生故障轉移到副本節點,並將其提升為主節點。 在此故障轉移期間,可能會有一個較短的時間間隔無法連線到Redis。
  • 副本 - 重新啟動副本節點時,通常不會影響快取客戶端。
  • 主和副本 - 同時重新啟動這兩個快取節點時,快取中的所有資料都會丟失,並且無法連線到快取,直到主節點重新聯機。 如果已配置資料永續性,則在快取重新聯機時會還原最新備份,但在最新備份後發生的所有快取寫入都將丟失。
  • 已啟用群集的高階快取的節點 - 重新啟動已啟用群集的高階快取的一個或多個節點時,所選節點的行為與重新啟動非群集快取的相應節點時相同。

更多的重啟問題,可參考官方文件:https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-administration#reboot

 

二:Redis群集擴大分片後能否縮小

可以的,可以在Redis的門戶頁面中進行分片大小的縮放及擴充套件。

【Azure Redis 快取】Azure Redis 功能性討論二

更多關於Redis叢集問題,請參考官方文件:https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-premium-clustering#what-is-redis-cluster 

 

三:Redis預設是否會備份,基礎和標準版本如何備份資料?

Redis不會預設備份,並且基礎版,標準版並不具備備份(RDB, AOF)的功能。 Redis的資料暫留只在高階版中提供,它提供兩種方式進行資料備份 RDB暫留和AOF暫留。

  • RDB 暫留 -  Azure Redis 快取按照可配置的備份頻率(預設60分鐘),將 Azure Redis 快取的快照以 Redis 二進位制格式暫留在儲存賬號中(Blob)上。
  • AOF 暫留 - 追加檔案,Azure Redis 快取將每個寫入操作儲存到日誌,此日誌每秒至少儲存到 Microsoft Azure 儲存帳戶一次。 

【Azure Redis 快取】Azure Redis 功能性討論二

更多資料持久化資訊,請參考官方文件:https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-premium-persistence#what-is-data-persistence

 

四:RDB 暫留和AOF 暫留有什麼區別

AOF 暫留將每個寫入儲存到日誌,與 RDB 暫留相比,這對吞吐量有一些影響,因為 RDB 暫留基於配置的備份間隔儲存備份,對效能產生的影響非常小。 

如果主要目標是最大程度減少資料損失,並且可應付快取吞吐量下降,請選擇 AOF 暫留。 如果希望在快取上保持最優吞吐量,但仍希望使用一種資料恢復機制,請選擇 RDB 暫留。

【Azure Redis 快取】Azure Redis 功能性討論二

 注:AOF 暫留對效能的影響:

當快取低於最大負載(CPU 和伺服器負載皆低於 90%)時,AOF 暫留對吞吐量產生約 15% - 20% 的影響。 快取處於這些限制以內時不存在延遲問題。 但是,啟用 AOF 時快取將更快達到這些限制。

 

關於Redis資料暫留的優缺點,可參考官方網站:https://redis.io/topics/persistence#rdb-advantages

 

五:設定計劃更新後,更新開始前後,redis是否可以繼續使用

正常情況下,如果Redis是標準版或者高階版,Redis在更新時是可用的

因為基本版快取沒有多個節點,僅建議用於開發和測試目的。在更新完成之前不可用。

Redis 服務定期使用最新的平臺功能和修補程式更新快取。 該服務遵循以下步驟來修補快取

  1. 管理服務選擇一個要修補的節點。
  2. 如果所選的節點是主節點,則相應的副本節點將以協作方式提升自身。 這種升級被視為計劃性故障轉移。
  3. 所選節點將重新啟動以獲取新的更改,然後以副本節點的角色重新啟動。
  4. 副本節點連線到主節點並同步資料。
  5. 資料同步完成後,將對剩餘的節點重複修補過程。

因為修補屬於計劃性故障轉移,所以副本節點會快速將自身提升為主節點,並開始為請求和新連線提供服務。 群集快取的每個分片單獨進行修補,不會關閉與另一個分片的連線。

【Azure Redis 快取】Azure Redis 功能性討論二

更多資訊,請參考官方文件:https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-failover

 

六:異地複製

異地複製設計為災難恢復解決方案。是一種用於連結兩個高階層 Azure Redis 快取例項的機制。 預設情況下,應用程式將寫入主要區域並從中進行讀取。

異地複製先決條件

若要在兩個快取之間配置異地複製,必須滿足以下先決條件:

  • 這兩個快取是高階層快取。
  • 這兩個快取在同一 Azure 訂閱中。
  • 輔助連結快取的大小等於或大於主連結快取的大小。
  • 這兩個快取都已建立且處於執行狀態。

異地複製不支援某些功能:

  • 異地複製不支援永續性。
  • 如果這兩個快取都啟用了群集功能並且具有相同數目的分片,則支援群集。
  • 支援同一 VNET 中的快取。
  • 也支援不同 VNET 中的快取,但需要注意一些問題。 有關詳細資訊,請參閱當快取位於 VNET 中時是否可以使用異地複製?

完成異地複製配置後,連結快取對會有以下限制:

  • 輔助連結快取為只讀狀態;這意味著只能從中讀取,但不能向其寫入任何資料。
  • 新增連結前輔助連結快取中的任何資料都會被刪除。 但如果以後刪除了異地複製,複製的資料則會保留在輔助連結快取中。
  • 連結快取時無法縮放任一快取。
  • 如果快取已啟用群集功能,則無法更改分片數目
  • 無法在任一快取上啟用暫存。
  • 可以從任一快取匯出
  • 無法匯入到輔助連結快取。
  • 只有在取消連結快取之後,才可以刪除任一連結快取或包含它們的資源組。 有關詳細資訊,請參閱嘗試刪除連結快取時為何操作會失敗?
  • 如果快取位於不同的區域,網路傳出費用將適用於在區域之間移動的資料。 有關詳細資訊,請參閱跨 Azure 區域複製資料的費用是多少?
  • 主要和輔助連結快取之間不會發生自動故障轉移。 有關如何故障轉移客戶端應用程式的詳細資訊,請參閱如何故障轉移到輔助連結快取?

【Azure Redis 快取】Azure Redis 功能性討論二

關於異地複製,可以參考官方文件:https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-geo-replication

 

相關文章