云數(shù)據(jù)庫 Tair(兼容 Redis)產(chǎn)品選型必讀
創(chuàng)建Tair實例前,您需要結(jié)合產(chǎn)品性能、價格、業(yè)務(wù)場景、工作負載等因素,做出性價比與穩(wěn)定性最優(yōu)的決策。本文圍繞以上因素,著重介紹實例類型、引擎版本、架構(gòu)、存儲介質(zhì),為您的選型提供相關(guān)參考。
免費試用
阿里云免費試用面向符合條件的新用戶,提供一定時間段的免費試用阿里云產(chǎn)品的權(quán)益,更多信息請參見免費試用。
快速推薦
業(yè)務(wù)場景 | 推薦規(guī)格 | 創(chuàng)建鏈接 |
超高性能場景、全球多活、按時間點恢復(fù)數(shù)據(jù),可使用自研增強型數(shù)據(jù)結(jié)構(gòu)等。 | Tair內(nèi)存型(兼容Redis 6.0) 4 GB高可用、不啟用集群版 | |
高性能并發(fā)場景(連接數(shù)大于20,000或QPS大于200,000) | Redis開源版6.0標(biāo)準版8 GB高可用、啟用集群版(每分片2 GB,共4分片) | |
通用緩存 | Redis開源版6.0標(biāo)準版4 GB高可用、不啟用集群版 | |
開發(fā)測試 | Redis倚天版 6.0版 1 GB |
詳細選項教程
通常,您需要結(jié)合產(chǎn)品性能、價格、業(yè)務(wù)場景(例如用作高速緩存或內(nèi)存數(shù)據(jù)庫)、工作負載等因素,選擇實例的類型與規(guī)格,推薦的選型流程如下:
在選型過程中 ,您可以在價格計算器中獲取不同實例規(guī)格的價格信息。
選型操作 | 說明 |
云數(shù)據(jù)庫 Tair(兼容 Redis)在提供Redis開源版的同時,還基于阿里云內(nèi)部使用的Tair產(chǎn)品研發(fā)并推出Tair(企業(yè)版),為您提供更強的性能、更多的數(shù)據(jù)結(jié)構(gòu)和更靈活的存儲方式。 | |
推薦選擇云原生版。 | |
云數(shù)據(jù)庫 Tair(兼容 Redis)支持標(biāo)準架構(gòu)、集群架構(gòu)和讀寫分離架構(gòu),可滿足不同的業(yè)務(wù)場景對業(yè)務(wù)讀寫能力、數(shù)據(jù)量和性能的要求。 | |
當(dāng)實例因不可預(yù)料的原因(例如設(shè)備故障、機房斷電等)發(fā)生故障,容災(zāi)機制可用于保障數(shù)據(jù)的一致性和業(yè)務(wù)可用性。云數(shù)據(jù)庫 Tair(兼容 Redis)提供多種災(zāi)備方案供您選擇,可滿足不同的業(yè)務(wù)場景。 | |
推薦使用更新的大版本以支持更多的功能和特性。 | |
提前預(yù)估可能消耗的內(nèi)存容量,可以幫助節(jié)約成本、避免頻繁變更規(guī)格給業(yè)務(wù)帶來的影響。 | |
完成上述實例的選型后,您可以通過控制臺或調(diào)用OpenAPI創(chuàng)建Redis實例。 | |
當(dāng)您完成選型并開始使用Redis實例后,您需要觀察業(yè)務(wù)正常運行狀態(tài)下的性能監(jiān)控信息,驗證當(dāng)前實例的服務(wù)能力是否符合預(yù)期。 |
選擇開源版或企業(yè)版
云數(shù)據(jù)庫 Tair(兼容 Redis)在提供社區(qū)版的同時,還基于阿里云內(nèi)部使用的Tair產(chǎn)品研發(fā)并推出企業(yè)級內(nèi)存數(shù)據(jù)庫產(chǎn)品,即Tair(企業(yè)版)。Tair(企業(yè)版)從訪問延時、持久化需求、整體成本這三個核心維度考量,基于DRAM、NVM和ESSD云盤存儲介質(zhì),推出了多種系列,為您提供更強的性能、更多的數(shù)據(jù)結(jié)構(gòu)和更靈活的存儲方式,滿足不同場景下的業(yè)務(wù)需求。
Redis企業(yè)版在兼容社區(qū)版的基礎(chǔ)上,還支持了一些高級特性(例如通過數(shù)據(jù)閃回按時間點恢復(fù)數(shù)據(jù)、代理查詢緩存、全球多活等),關(guān)于社區(qū)版和企業(yè)版的能力和性能的詳細對比,請參見特性對比。
各系列支持的命令與參數(shù),請參見Redis命令支持概覽和設(shè)置實例參數(shù)。
類別 | 系列 | 特點 | 適用場景 |
Tair(企業(yè)版) |
| 以性能為中心的關(guān)鍵業(yè)務(wù)場景。 | |
| 需要高性能且高數(shù)據(jù)持久化要求,且成本作為次要考慮因素的數(shù)據(jù)緩存與存儲場景。 | ||
| 大存儲、低訪問密度、低訪問延遲要求,且成本作為首要考慮因素的數(shù)據(jù)存儲場景。 | ||
Redis開源版 | 無 | 兼容開源Redis,高性能。 | 適用于標(biāo)準化Redis使用和遷移場景。 |
選擇云原生版或經(jīng)典版
云原生版或經(jīng)典版的對比如下。
對比項 | 云原生實例(推薦) | 經(jīng)典實例 |
架構(gòu) | 基于新一代管控架構(gòu),更靈活、擴容能力更強。后續(xù)的產(chǎn)品將基于此架構(gòu)演進。 | 基于傳統(tǒng)管控架構(gòu)。集群架構(gòu)實例為預(yù)設(shè)固定規(guī)格,不支持自定義。 |
擴容能力 |
|
|
選擇部署架構(gòu)
云數(shù)據(jù)庫 Tair(兼容 Redis)支持三種不同的部署架構(gòu),可滿足不同的業(yè)務(wù)場景對業(yè)務(wù)讀寫能力、數(shù)據(jù)量和性能的要求。
下文默認介紹高可用類型的實例架構(gòu)。標(biāo)準架構(gòu)和集群架構(gòu)還支持單副本類型,但單副本類型無高可用功能,僅適用于測試等純緩存場景。
實例架構(gòu) | 簡介 | 適用場景 |
采用主從(master-replica)模式搭建。主節(jié)點提供日常服務(wù)訪問,從節(jié)點提供HA高可用。當(dāng)主節(jié)點發(fā)生故障,系統(tǒng)會自動在30秒內(nèi)切換至從節(jié)點,保障業(yè)務(wù)平穩(wěn)運行。 |
| |
|
| |
|
說明 由于數(shù)據(jù)同步至只讀節(jié)點存在一定延遲,不適用于數(shù)據(jù)一致性要求高的場景,如對數(shù)據(jù)一致性要求高建議選用集群架構(gòu)。 |
集群架構(gòu)可選擇不同的連接模式:
代理模式:客戶端的請求由代理節(jié)點轉(zhuǎn)發(fā)至數(shù)據(jù)分片,可享受代理節(jié)點帶來的負載均衡、讀寫分離、故障轉(zhuǎn)移、代理查詢緩存(僅內(nèi)存型支持)、長連接等特性能力。更多信息,請參見Redis Proxy特性說明。
直連模式:可通過直連地址繞過代理,直接訪問后端的數(shù)據(jù)分片(類似連接開源Redis集群)。相比代理模式,直連模式節(jié)約了通過代理處理請求的時間,可以在一定程度上提高Tair服務(wù)的響應(yīng)速度。
選擇容災(zāi)方案
災(zāi)備方案 | 災(zāi)備級別 | 說明 |
★★★☆☆ | 主從節(jié)點部署在同一可用區(qū)中的不同機器上,當(dāng)任一節(jié)點發(fā)生故障時,由高可用HA(High Availability)系統(tǒng)自動執(zhí)行故障切換,避免單點故障引起的服務(wù)中斷。 | |
★★★★☆ | 主從節(jié)點分別部署在同一地域下兩個不同的可用區(qū),當(dāng)任一可用區(qū)因電力、網(wǎng)絡(luò)等不可抗因素失去通信時,高可用HA系統(tǒng)將執(zhí)行故障切換,確保整個實例的持續(xù)可用。 | |
★★★★★ | 由多個子實例構(gòu)成全球分布式實例,所有子實例通過同步通道保持實時數(shù)據(jù)同步,由通道管理器負責(zé)子實例的健康狀態(tài)監(jiān)測、主從切換等等異常事件的處理,適用于異地災(zāi)備、異地多活、應(yīng)用就近訪問、分攤負載等場景。更多介紹,請參見全球多活。 |
選擇大版本
可根據(jù)業(yè)務(wù)需求選擇大版本(各大版本均長期維護),推薦您使用較新的大版本以支持更多的特性,更多信息請參見Redis大版本新特性與兼容性。
大版本的選擇存在一定的約束,具體如下:
實例及其創(chuàng)建方法 | 支持的實例類型 | 支持的引擎版本 | 支持的架構(gòu) |
云原生版實例 | Redis開源版 | 7.0 6.0 5.0 | 標(biāo)準架構(gòu) 集群架構(gòu) 讀寫分離架構(gòu) |
Redis倚天版 | 7.0 6.0 5.0 | 標(biāo)準架構(gòu) | |
Tair(企業(yè)版)內(nèi)存型 | 兼容Redis 7.0 兼容Redis 6.0 兼容Redis 5.0 | 標(biāo)準架構(gòu) 集群架構(gòu) 讀寫分離架構(gòu) | |
Tair(企業(yè)版)持久內(nèi)存型 | 兼容Redis 6.0 | 標(biāo)準架構(gòu) 集群架構(gòu) 讀寫分離架構(gòu) | |
Tair(企業(yè)版)磁盤型 | 兼容Redis 6.0 | 標(biāo)準架構(gòu) | |
經(jīng)典版實例 | Redis開源版 | 5.0 4.0 | 集群架構(gòu) 標(biāo)準架構(gòu) 讀寫分離架構(gòu) |
Tair(企業(yè)版)內(nèi)存型 | 5.0 | 集群架構(gòu) 標(biāo)準架構(gòu) 讀寫分離架構(gòu) |
預(yù)估內(nèi)存規(guī)格
通常情況下,您需要考慮下述因素預(yù)估可能消耗的內(nèi)存容量并在創(chuàng)建實例時選擇對應(yīng)的規(guī)格,該操作有助于節(jié)約成本、避免頻繁變更規(guī)格給業(yè)務(wù)帶來的影響,助力業(yè)務(wù)快速上云。
在確定云數(shù)據(jù)庫 Tair(兼容 Redis)實例的內(nèi)存容量時,首先要考慮存儲的業(yè)務(wù)數(shù)據(jù)大小,除此之外,您還需額外考慮Redis自身運行占用的必要內(nèi)存開銷(例如進程元數(shù)據(jù)、復(fù)制緩沖區(qū)、碎片等)。
不同于自建Redis數(shù)據(jù)庫,選用云數(shù)據(jù)庫 Tair(兼容 Redis)時,您無需再額外考慮持久化Fork寫時復(fù)制占用的內(nèi)存開銷以及增強功能(如安全白名單、審計、大Key、熱Key等)的內(nèi)存開銷,這些開銷由阿里云承擔(dān),不計入購買的實例內(nèi)存容量。
Key的數(shù)據(jù)類型、長度和數(shù)量。
說明如果使用可包含元素的數(shù)據(jù)類型(例如Hash),您還需要計算每個Key中,各元素的數(shù)量和長度。
Value的長度。
Key的過期時間與逐出策略。
訪問模型,例如大量的客戶端連接、使用Lua腳本或事務(wù)等,均需要為其預(yù)留適量的內(nèi)存。
中長期的業(yè)務(wù)增長情況。
創(chuàng)建Redis實例
完成上述實例的選型后,您可以通過控制臺或調(diào)用OpenAPI創(chuàng)建Tair實例:
控制臺:創(chuàng)建Redis實例。
OpenAPI:CreateInstance。
服務(wù)能力驗證與調(diào)整
云數(shù)據(jù)庫 Tair(兼容 Redis)支持非常豐富的監(jiān)控指標(biāo),當(dāng)您完成選型并開始使用Tair實例后,建議您觀察業(yè)務(wù)正常運行狀態(tài)下的性能監(jiān)控信息,驗證當(dāng)前實例的服務(wù)能力是否符合預(yù)期。具體操作,請參見查看監(jiān)控數(shù)據(jù)。
您也可以使用Redis-benchmark執(zhí)行性能壓測進行驗證,更多信息,請參見Redis-benchmark使用說明。
例如,當(dāng)您通過性能監(jiān)控發(fā)現(xiàn)實例內(nèi)存使用率一直較高,您需要先排查內(nèi)存使用率較高的原因,如無異常,可升級至更高的規(guī)格,具體操作,請參見變更實例配置。關(guān)于實例性能類問題的排查方法,請參見: