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