Tair擴(kuò)展數(shù)據(jù)結(jié)構(gòu)概覽
云數(shù)據(jù)庫(kù) Tair(兼容 Redis)與開源Redis相同,支持String、List、Hash、Set、Sorted Set、Stream等數(shù)據(jù)類型,能夠滿足大部分場(chǎng)景下的開發(fā)需求,但無法直接滿足一些復(fù)雜場(chǎng)景的業(yè)務(wù)需求,需要通過開發(fā)大量代碼、使用Lua腳本等復(fù)雜的方式實(shí)現(xiàn)。Tair(企業(yè)版)集成了多個(gè)自研的數(shù)據(jù)結(jié)構(gòu),包括exString(包含Redis String命令增強(qiáng))、exHash、exZset、GIS、Bloom、Doc、TS、Cpc、Roaring、Search和Vector,從多方面擴(kuò)展Redis的適用性,降低復(fù)雜場(chǎng)景下業(yè)務(wù)的開發(fā)難度,同時(shí)可以幫助您精簡(jiǎn)大量代碼并提高業(yè)務(wù)整體性能,使您專注于業(yè)務(wù)創(chuàng)新。
Tair擴(kuò)展數(shù)據(jù)結(jié)構(gòu)與Redis Stack模塊(Modules)
如下為Tair集成的數(shù)據(jù)結(jié)構(gòu),以及與Redis Stack Server的功能對(duì)比。
類型 | Tair擴(kuò)展數(shù)據(jù)結(jié)構(gòu) | Redis Stack Server(對(duì)比項(xiàng)) | 說明 |
String增強(qiáng) | 無 |
最佳實(shí)踐:基于TairString實(shí)現(xiàn)高性能樂觀鎖、基于TairString實(shí)現(xiàn)高效限流器。 | |
Hash增強(qiáng) | 無 | TairHash支持為field設(shè)置過期時(shí)間和版本,提高了Hash數(shù)據(jù)結(jié)構(gòu)的靈活性,簡(jiǎn)化了很多場(chǎng)景下的業(yè)務(wù)開發(fā)工作。該數(shù)據(jù)結(jié)構(gòu)已開源,更多信息請(qǐng)參見TairHash。 最佳實(shí)踐:基于TairHash實(shí)現(xiàn)用戶多設(shè)備登錄管理。 | |
Zset增強(qiáng) | 無 | TairZset可實(shí)現(xiàn)256個(gè)維度的double類型的分值排序,提供普通排行榜和多維排行榜的能力。該數(shù)據(jù)結(jié)構(gòu)已開源,更多信息請(qǐng)參見TairZset。 最佳實(shí)踐:基于TairZset輕松實(shí)現(xiàn)多維排行榜、基于TairZset實(shí)現(xiàn)分布式架構(gòu)排行榜。 | |
GeoSpatial | 無 | TairGIS是一種使用R-Tree做索引,支持地理信息系統(tǒng)GIS(Geographic Information System)相關(guān)接口的數(shù)據(jù)結(jié)構(gòu)。支持點(diǎn)、線、面的查詢,支持包含、被包含、相交等多種關(guān)系判斷。該數(shù)據(jù)結(jié)構(gòu)已開源,更多信息請(qǐng)參見TairGIS。 最佳實(shí)踐:基于TairGIS實(shí)現(xiàn)電子圍欄、基于TairGIS實(shí)現(xiàn)同城購(gòu)業(yè)務(wù)。 | |
Doc(JSON) | RedisJSON | TairDoc是一種文檔類型的數(shù)據(jù)結(jié)構(gòu),支持JSON標(biāo)準(zhǔn),類似RedisJSON模塊。同時(shí),TairDoc數(shù)據(jù)以二進(jìn)制樹的方式存儲(chǔ),支持對(duì)JSON中子元素進(jìn)行快速訪問。 | |
Search | RediSearch | TairSearch提供類似Elasticsearch(ES-LIKE)的語法,提供種類更多、效果更準(zhǔn)確的分詞器,查詢性能更佳。 | |
Graph | RedisGraph | 圖數(shù)據(jù)庫(kù)(Graph Database,簡(jiǎn)稱GDB)是一種支持Property Graph圖模型、用于處理高度連接數(shù)據(jù)查詢與存儲(chǔ)的實(shí)時(shí)、可靠的在線數(shù)據(jù)庫(kù)服務(wù)。更多信息請(qǐng)參見圖數(shù)據(jù)庫(kù)GDB。 | |
TimeSeries | RedisTimeSeries | TairTS相比較RedisTimeSeries具備更強(qiáng)的標(biāo)簽(Tag)擴(kuò)展能力,支持Skey(Tag)的兩級(jí)Hash結(jié)構(gòu)時(shí)間線,支持對(duì)Skey(Tag)進(jìn)行二級(jí)時(shí)間線聚合查詢,支持對(duì)歷史時(shí)序數(shù)據(jù)的更新或累加等。 最佳實(shí)踐:基于TairTS實(shí)現(xiàn)秒級(jí)監(jiān)控。 | |
Sketches | RedisBloom | TairBloom兼容RedisBloom,支持動(dòng)態(tài)擴(kuò)容,同時(shí)通過64位的Hash算法降低Hash碰撞率,顯著降低大數(shù)據(jù)的沖撞率。 最佳實(shí)踐:推薦系統(tǒng)、爬蟲系統(tǒng),更多信息請(qǐng)參見Bloom、使用Bloom Filter高效管理游戲活動(dòng)推送。 | |
無 | TairCpc是基于CPC(Compressed Probability Counting)壓縮算法開發(fā)的數(shù)據(jù)結(jié)構(gòu),支持僅占用很小的內(nèi)存空間對(duì)采樣數(shù)據(jù)進(jìn)行高性能計(jì)算,支持滾動(dòng)窗口和滑動(dòng)窗口,可以更好地支持流式運(yùn)算,支持大數(shù)據(jù)分析中常用的聚合算子,如: | ||
Bitmap | 無 | TairRoaring提供高效的計(jì)算模塊和極高的穩(wěn)定性,支持多位圖運(yùn)算能力,提升了性能和空間效率。 最佳實(shí)踐:基于TairRoaring實(shí)現(xiàn)人群圈選方案。 | |
向量檢索 | Redis Search (Vector Similarity) | TairVector是Tair自研的擴(kuò)展數(shù)據(jù)結(jié)構(gòu),提供高性能、實(shí)時(shí),集存儲(chǔ)、檢索于一體的向量數(shù)據(jù)庫(kù)服務(wù)。 最佳實(shí)踐: |
常見問題
云數(shù)據(jù)庫(kù) Tair(兼容 Redis)是否支持Redis stack server?
由于Redis開源協(xié)議限制,阿里云Redis開源版、Tair(企業(yè)版)均不支持Redis stack server。
為解決該問題,Tair(企業(yè)版)推出自研的擴(kuò)展數(shù)據(jù)結(jié)構(gòu),包括exString(包含Redis String命令增強(qiáng))、exHash、exZset、GIS、Bloom、Doc、TS、Cpc、Roaring、Search和Vector,整體比Redis stack server支持更多的數(shù)據(jù)結(jié)構(gòu),而部分?jǐn)?shù)據(jù)結(jié)構(gòu)在性能上也優(yōu)于Redis stack server。