1. 程式人生 > 其它 >雲小課|雲小課教您如何選擇Redis例項型別

雲小課|雲小課教您如何選擇Redis例項型別

閱識風雲是華為雲資訊大咖,擅長將複雜資訊多元化呈現,其出品的一張圖(雲圖說)、深入淺出的博文(雲小課)或短視訊(雲視廳)總有一款能讓您快速上手華為雲。更多精彩內容請單擊此處。

摘要:購買Redis例項時,例項型別有單機、主備、Proxy叢集、Cluster叢集和讀寫分離這麼多種,該怎麼選?別擔心,本篇雲小課把每個Redis例項型別的特點優勢給您一一道來。

本文分享自華為雲社群《【雲小課】應用平臺第40課 雲小課教您如何選擇Redis例項型別》,作者: 閱識風雲。

購買Redis例項時,例項型別有單機、主備、Proxy叢集、Cluster叢集和讀寫分離這麼多種,該怎麼選?別擔心,小課把每個例項型別的特點優勢給您一一道來。

Redis單機例項

單機例項只有1個節點,1個Redis程序,當Redis程序故障後,DCS為例項重新拉起一個新的Redis程序,秒級恢復業務。

單機例項支援讀寫高併發,但不做持久化,例項重啟時不儲存原有資料。

單機例項拓撲圖:

單機例項具有以下特點:

  • 系統資源消耗低,支援高QPS
    單機例項不涉及資料同步、資料持久化所需消耗的系統開銷,因此能夠支撐更高的併發。Redis單機例項QPS達到10萬以上。
    單機例項支援多資料庫(多DB,256個DB),用於資料隔離。
  • 程序監控,故障後自動恢復
    DCS部署了業務高可用探測,單機例項故障後,30秒內會重啟一個新的程序,恢復業務。
  • 即開即用,資料不做持久化
    單機例項開啟後不涉及資料載入,即開即用。如果服務QPS較高,可以考慮進行資料預熱,避免給後端資料庫產生較大的併發衝擊。
  • 低成本,適用於開發測試

單機例項各種規格的成本相對主備減少40%以上。適用於開發、測試環境搭建。

Redis主備例項

Redis的主備例項在單機例項基礎上,增強了服務高可用以及資料高可靠性。

主備例項分片數為1,包含一個主節點,一個或多個備節點。DCS實時探測例項可用性,使用哨兵模式(Sentinel)進行管理,監控主備節點是否正常執行,當主節點出現故障時,會進行主備倒換,恢復業務。

主備例項拓撲圖:

主備例項具有以下特點:

  • 持久化,確保資料高可靠
    主備例項預設為雙副本(一主一備),支援設定為多副本(一主多備),支援多DB,預設開啟資料持久化功能,可保持節點間資料同步。
  • 資料同步
    主備節點通過增量資料同步的方式保持快取資料一致。
    當網路發生異常或有節點故障時,主備例項會在故障恢復後進行一次全量同步,保持資料一致性。
  • 故障後自動切換主節點,服務高可用
    當主節點故障後,連線會有秒級中斷、不可用,備節點在30秒內自動完成主備切換,切換完成後恢復正常訪問,無需使用者操作,保證業務平穩執行。
  • 多種容災策略
    DCS支援將主備例項部署在不同的AZ(可用區)內,節點間電力與網路均物理隔離。您可以將應用程式也進行跨AZ部署,從而達到資料與應用全部高可用。
  • 讀寫分離

Redis 4.0、Redis 5.0和Redis 6.0基礎版主備例項,分別提供了可讀寫的連線地址(主節點)和只讀地址(備節點),在客戶端連線時,通過增加使用者讀寫請求判斷,將寫請求傳送給讀寫域名,讀請求傳送給只讀域名,可實現客戶端讀寫分離。

Redis Cluster叢集例項

Cluster叢集通過分片化分割槽來增加快取的容量和併發連線數,每個Shard分片預設是一個雙副本的Redis主備例項,分片本身對外不可見。分片中主節點故障後,同一分片中備節點會升級為主節點來繼續提供服務。

Cluster叢集例項拓撲圖:

Cluster叢集例項特點:

  • 支援選擇不同例項規格(對應不同的Shard分片數),在建立例項時,支援自定義分片大小,暫時不支援自定義分片數,預設每個分片為雙副本架構,副本數可自定義。
  • Cluster叢集例項,通過使用cluster nodes查詢所有主備節點,客戶端連線備節點,並在節點上做配置,開啟備節點只讀訪問,可實現客戶端讀寫分離,提升快取的整體讀寫能力。配置方法請參考Redis例項是否支援讀寫分離
  • Cluster叢集例項預設DB數為1,不支援開啟多DB。

Redis Proxy叢集例項

Proxy叢集在Cluster叢集的基礎上,增加掛載Proxy節點和Elastic Load Balance (ELB)節點,通過ELB節點實現負載均衡,將不同請求分發到Proxy節點(Redis叢集代理伺服器),實現Redis叢集內部的高可用,以及承接客戶端的高併發請求。

Proxy叢集例項拓撲圖:

Proxy叢集例項特點:

  • 支援選擇不同例項規格(對應不同的Proxy節點數和Shard分片數),在建立例項時,支援自定義分片大小,暫時不支援自定義分片數和副本數,預設每個分片為雙副本架構。
  • Proxy叢集例項預設預設只有一個DB,支援開啟多DB,開啟多DB前需要了解Proxy叢集使用多DB限制
  • Proxy叢集例項不支援讀寫分離。

Redis讀寫分離例項

讀寫分離例項,後端是一個主備例項,預設包含主備兩個節點(雙副本),支援設定為多副本,即多個備節點。

讀寫分離例項,在主備例項的基礎上,通過ELB節點實現負載均衡,將不同請求分發到Proxy節點,Proxy節點識別使用者讀寫請求,如果是寫請求,轉發給主節點;如果是讀請求,則轉發給備節點,從服務端側實現讀寫分離。

讀寫分離例項拓撲圖:

讀寫分離例項特點:

讀寫分離例項除具有主備例項資料持久化,主備節點資料同步等基本特點以外,還支援服務端讀寫分離,不需要使用者在客戶端做任何配置。

例項型別對比與總結

小課還貼心的為您將每種例項型別做了以下對比分析,方便您根據自己業務的特點和需求做出選擇。

例項型別對比:

例項型別總結:

  • 單機例項不支援資料持久化,主要服務於資料不需要由快取例項做持久化的業務場景。
  • 在綜合性能上,多分片強於單分片,多副本強於單副本。
  • 在負載均衡方面,Proxy叢集和讀寫分離例項支援負載均衡,例項具有高可用性的同時,只需使用1個IP,無需多個IP分別訪問每個節點。
  • Redis單機、主備和讀寫分離例項預設支援多DB(256個DB),多DB主要用於資料隔離。
  • 讀寫分離主要適用於讀高併發、寫請求較少的業務場景,解決高併發的效能問題,節約運維成本。
  • 讀寫分離例項為服務端讀寫分離,無需使用者做任何程式碼配置,相較與客戶端讀寫分離,使用更方便。

如果您還需要了解例項的記憶體和QPS等規格請戳這裡。

 

點選關注,第一時間瞭解華為雲新鮮技術~