Tair記憶體型(簡稱記憶體型)適合并發量大、讀寫熱點多,對效能要求超過Redis開源版執行個體的情境。相比Redis開源版,記憶體型重點增強了多線程效能並整合多個自研擴充資料結構。
功能概述
類別 | 說明 |
相容性 | 100%相容原生Redis,無需修改業務代碼,提供相容Redis 7.0、相容Redis 6.0與相容Redis 5.0版本。 |
效能 |
|
同步模式 | 額外支援半同步模式,即用戶端發起的更新在主節點執行完成後,主節點會將日誌複製到備節點,待備節點確認接收後才返回資訊給用戶端,保證高可用切換後資料不丟失。 |
部署架構 | 支援標準、叢集和讀寫分離部署架構。 |
資料結構模組整合 | 整合多個自研的Tair模組,包括exString(包含Redis String命令增強)、exHash、exZset、GIS、Bloom、Doc、TS、Cpc、Roaring、Search和Vector,擴充了Tair的適用性,同時降低了複雜情境下業務的開發難度,讓您專註於業務創新。 |
企業級特性 |
|
資料安全 |
|
應用情境
適用於ApsaraVideo for Live、電商秒殺和線上教育等情境,下面列舉了記憶體型在4個典型情境中的應用。
情境1:使用Redis開源版執行個體在秒殺情境中構建緩衝,部分熱點Key的QPS要求高達20萬以上,無法滿足業務高峰期的需求。
採用記憶體型(標準架構)執行個體後,熱門商品秒殺過程流暢,未發生效能問題。
情境2:在業務中使用Redis開源版叢集執行個體,但在使用事務和Lua指令碼功能時有一定的限制。
採用記憶體型執行個體後,在滿足效能需求的同時消除了叢集版的命令使用限制。
情境3:自建有一主多備的Redis服務,隨著業務中訪問量的不斷提高,備節點數量也要隨之增加,管理維護成本越來越高。
採用具備一個資料節點五個唯讀副本的記憶體型(讀寫分離架構)執行個體後,可以輕鬆應對百萬級QPS的業務挑戰。
情境4:自建有Redis叢集來承擔線上千萬級QPS的業務壓力。隨著業務的發展,Redis分區數不斷增加,管理維護成本居高不下。
採用記憶體型(叢集架構)執行個體後,叢集規模縮到原來的三分之一,管理維護成本大幅降低。
執行緒模式對比
Redis單執行緒模式
Redis開源版和原生Redis採用單執行緒模式,資料處理流程為:讀取請求,解析請求,處理資料,發送響應。其中網路IO和請求解析佔用了大部分的資源。
Tair記憶體型多執行緒模式
Tair記憶體型將服務各階段的任務進行分離,通過多個線程平行處理各階段任務,從而提高效能。
主線程:負責建立串連、啟動其他線程、分發任務等。
IO線程:負責讀取請求、解析命令、處理命令、發送響應等。Tair記憶體型最多支援4個IO線程並發運行。
輔助(BIO)線程:負責高可用探測、資料持久化、記憶體惰性回收、保活等。
Tair記憶體型對於通用的資料類型,例如String、List、Set、Hash、Zset、 Hyperloglog、Geo以及Tair擴充結構都有很好的加速效果。
區別於Redis 6.0的多線程(效能至多提升2倍,且CPU資源消耗高),記憶體型的Real Multi-IO能夠徹底加速IO和命令執行,具備更高的抗串連衝擊性,且可以線性地提升吞吐能力。
常見問題
Q:用戶端不支援Tair擴充模組的命令怎麼辦?
A:您可以先在應用代碼中定義需要使用的新模組命令,然後再使用這些命令,或者通過Tair用戶端直接調用Tair擴充資料結構,更多資訊,請參見Clients說明。