全部產品
Search
文件中心

Tair:Tair選型指南

更新時間:Oct 25, 2024

建立雲原生記憶體資料庫Tair執行個體前,您需要結合產品效能、價格、業務情境、工作負載等因素,做出性價比與穩定性最優的決策。本文圍繞以上因素,著重介紹執行個體類型、引擎版本、架構、儲存介質,為您的選型提供相關參考。

選型流程

通常,您需要結合產品效能、價格、業務情境(例如用作快取或記憶體資料庫)、工作負載等因素,選擇執行個體的類型與規格,推薦的選型流程如下:

說明

在選型過程中 ,您可以在價格計算機中擷取不同執行個體規格的價格資訊。

步驟

選型操作

說明

1

選擇儲存介質

雲原生記憶體資料庫Tair面向高效能、高性價比和超大規格等多種情境提供不同的儲存介質,分別為記憶體型、持久記憶體型和磁碟型。

2

選擇部署架構

雲原生記憶體資料庫Tair支援標準架構叢集架構讀寫分離架構,可滿足不同業務情境對業務讀寫能力、資料量和效能的要求。

3

選擇容災方案

雲原生記憶體資料庫Tair執行個體若因不可預料的原因(例如裝置故障、機房斷電等)發生故障,容災機制保障資料的一致性和業務可用性。雲原生記憶體資料庫Tair提供多種災備方案供您選擇,可滿足不同的業務情境。

4

預估記憶體規格

提前預估可能消耗的記憶體容量,可以協助節約成本、避免頻繁變更規格給業務帶來的影響。

完成上述執行個體選型後,您可以通過控制台或調用OpenAPI建立Tair執行個體,更多資訊請參見建立Tair執行個體

說明

當您完成選型並開始使用Tair執行個體後,您需要觀察業務正常運行狀態下的效能監控資訊,驗證當前執行個體的服務能力是否符合預期,更多資訊請參見服務能力驗證與調整

選擇儲存介質

雲原生記憶體資料庫Tair從訪問延時、持久化需求、整體成本這三個核心維度考量,推出了DRAM、NVM和ESSD雲端硬碟儲存介質,為您提供更強的效能、更多的資料結構和更靈活的儲存方式,滿足不同情境下的業務需求。

情境

推薦

特點

以效能為中心的關鍵業務情境。

記憶體型

高效能、高資料持久化要求,且成本作為次要考慮因素的資料緩衝與儲存情境。

持久記憶體型

  • 超高性價比:相同容量下對比Redis社區版,價格降低30%左右,效能可達Redis社區版的90%,更多資訊請參見持久記憶體型效能白皮書

  • 支援增強型資料結構模組(modules):exString(包含Redis String命令增強)、exHashCpc

  • 掉電資料不丟失:強大的命令級持久化保障,每個寫操作持久化成功後返回,可將其作為記憶體資料庫(非緩衝)使用。

大儲存、低訪問密度、低訪問延遲要求,且成本作為首要考慮因素的資料存放區情境。

磁碟型

  • 低成本:最低為Redis社區版的15%。

  • 效能:約為Redis社區版的60%,更多資訊請參見磁碟(ESSD)型效能白皮書

  • 磁碟儲存:資料分布在ESSD或SSD中,容量可達百TB層級,擁有高資料可靠性。

  • 資料分布:採用阿里雲TairDB儲存引擎,資料通過磁碟持久化,記憶體用於請求加速。

  • 高相容性:相容Redis社區版6.0大部分的資料結構和命令。

各系列支援的命令與參數,請參見Tair命令支援概覽參數支援

雲原生版與經典版

若您選擇記憶體型,您可以選擇雲原生版或經典版,對比如下:

對比項

雲原生執行個體(推薦)

經典執行個體

架構

基於新一代管控架構,更靈活、擴容能力更強。後續的產品將基於此架構演化。

基於傳統管控架構。叢集架構執行個體為預設固定規格,不支援自訂。

擴容能力

  • 支援在原本地資源充足的情況下快速擴容(無需遷移至新執行個體),擴容速度更快,對業務影響更小。更多資訊請參見變更配置流程

  • 叢集架構執行個體擴容無閃斷。

  • 叢集架構執行個體支援自由調整2~256個分區節點數量(支援最小粒度為1個分區),同時支援調整分區節點的規格,能夠更好地應對不同效能、容量的需求情境。

  • 讀寫分離架構支援自由調整1~9個唯讀節點數量。

  • 讀寫分離架構支援在多可用性區域時就近訪問。

  • 擴容耗時較長。

  • 叢集架構執行個體擴容會有閃斷。

  • 叢集架構執行個體的分區節點的擴充數固定,例如2分區、4分區、8分區等。

  • 讀寫分離架構的唯讀節點固定為1、3、5個。

選擇部署架構

雲原生記憶體資料庫Tair支援三種不同的部署架構,可滿足不同的業務情境對業務讀寫能力、資料量和效能的要求。

圖 2. 部署架構對比部署架構對比

說明

下文預設介紹高可用類型的執行個體架構。標準架構和叢集架構還支援單副本類型,但單副本類型無高可用功能,僅適用於測試等純緩衝情境。

執行個體架構

簡介

適用情境

標準架構

採用主從(master-replica)模式搭建。主節點提供日常服務訪問,從節點提供HA高可用。當主節點發生故障,系統會自動在30秒內切換至從節點,保障業務平穩運行。

  • 對Redis協議相容性要求較高的業務。

  • Tair作為持久化資料存放區使用的業務。

  • 單個Tair效能壓力可控的情境。

  • 命令相對簡單,排序和計算之類的命令較少的情境。

叢集架構

  • 由代理節點、資料分區和設定管理員組件構成,可通過增加資料分區的方式實現橫向擴充。

  • 每個資料分區均為雙副本(分別部署在不同機器上)高可用架構,主節點發生故障後,系統會自動進行主從切換保證服務高可用。

  • 資料量較大的情境。

  • 整體讀寫請求的QPS壓力較大的情境。

  • 吞吐密集型、高效能應用情境。

讀寫分離架構

  • 由代理節點、主從節點和唯讀節點構成。

  • 唯讀節點採取鏈式複製架構,擴充唯讀節點個數可使整體執行個體效能呈線性增長。

  • 讀請求QPS壓力較大的情境(如熱點資料集中)。

  • 對Redis協議相容性要求較高的業務情境,例如規避叢集架構的使用限制

說明

由於資料同步至唯讀節點存在一定延遲,不適用於資料一致性要求高的情境,如對資料一致性要求高建議選用叢集架構。

說明

叢集架構可選擇不同的串連模式:

  • 代理模式:用戶端的請求由代理節點轉寄至資料分區,可享受代理節點帶來的負載平衡、讀寫分離、容錯移轉、代理查詢快取(僅記憶體型支援)、長串連等特效能力。更多資訊,請參見Tair Proxy特性說明

  • 直連模式:可通過直連地址繞過代理,直接存取後端的資料分區(類似串連開源Redis叢集)。相比代理模式,直連模式節約了通過代理處理請求的時間,可以在一定程度上提高Tair服務的響應速度。

選擇容災方案

圖 3. Tair容災架構演化Redis容災架構演化

災備方案

災備層級

說明

單可用性區域高可用方案

★★★☆☆

主從節點部署在同一可用性區域中的不同機器上,當任一節點發生故障時,由高可用HA(High Availability)系統自動執行故障切換,避免單點故障引起的服務中斷。

同城容災方案

★★★★☆

主從節點分別部署在同一地區下兩個不同的可用性區域,當任一可用性區域因電源、網路等不可抗因素失去通訊時,高可用HA系統將執行故障切換,確保整個執行個體的持續可用。

跨地區容災方案

★★★★★

由多個子執行個體構成全球分布式執行個體,所有子執行個體通過同步通道保持即時資料同步,由通道管理器負責子執行個體的健康狀態監測、主從切換等等例外狀況事件的處理,適用於異地災備、異地多活、應用就近訪問、分攤負載等情境。更多介紹請參見Tair全球多活簡介

預估記憶體規格

通常情況下,您需要考慮下述因素預估可能消耗的記憶體容量並在建立執行個體時選擇對應的規格,該操作有助於節約成本、避免頻繁變更規格給業務帶來的影響。

重要

在確定雲原生記憶體資料庫Tair執行個體的記憶體容量時,首先要考慮儲存的業務資料大小,其次,您還需額外考慮執行個體自身運行佔用的必要記憶體開銷(例如進程中繼資料、複製緩衝區、片段等)。不同於開源Redis資料庫,選用Tair時,您無需再額外考慮Tair持久化Fork寫時複製佔用的記憶體開銷以及Tair增強功能(如安全白名單、審計、大Key、熱Key等)的記憶體開銷,這些開銷由阿里雲承擔,不計入購買的執行個體記憶體容量。

  • Key的資料類型、長度和數量。

    說明

    如果使用可包含元素的資料類型(例如Hash),您還需要計算每個Key中,各元素的數量和長度。

  • Value的長度。

  • Key的到期時間與逐出策略(maxmemory-policy參數)

  • 訪問模型,例如大量的用戶端串連、使用Lua指令碼或事務等,均需要為其預留適量的記憶體。

  • 中長期的業務增長情況。

建立Tair執行個體

完成上述執行個體的選型後,您可以通過控制台或調用OpenAPI建立Tair執行個體:

服務能力驗證與調整

雲原生記憶體資料庫Tair支援非常豐富的監控指標,當您完成選型並開始使用Tair執行個體後,建議您觀察業務正常運行狀態下的效能監控資訊,驗證當前執行個體的服務能力是否符合預期。具體操作,請參見查看監控資料

說明

您也可以使用Redis-benchmark執行效能壓測進行驗證,更多資訊,請參見Redis-benchmark使用說明

如果您通過效能監控發現執行個體記憶體使用量率一直較高,您需要先排查記憶體使用量率較高的原因,如無異常,可升級至更高的規格,具體操作,請參見變更執行個體配置。關於執行個體效能類問題的排查方法,請參見: