全部产品
Search
文档中心

云数据库 Tair(兼容 Redis®):Tair扩展数据结构概览

更新时间:Nov 20, 2024

云数据库 Tair(兼容 Redis)与开源Redis相同,支持String、List、Hash、Set、Sorted Set、Stream等数据类型,能够满足大部分场景下的开发需求,但无法直接满足一些复杂场景的业务需求,需要通过开发大量代码、使用Lua脚本等复杂的方式实现。Tair(企业版)集成了多个自研的数据结构,包括exString(包含Redis String命令增强)、exHashexZsetGISBloomDocTSCpcRoaringSearchVector,从多方面扩展Redis的适用性,降低复杂场景下业务的开发难度,同时可以帮助您精简大量代码并提高业务整体性能,使您专注于业务创新。

说明

Tair扩展数据结构与Redis Stack模块(Modules)

如下为Tair集成的数据结构,以及与Redis Stack Server的功能对比。

类型

Tair扩展数据结构

Redis Stack Server(对比项)

说明

String增强

  • exString是一种带版本号的string类型数据结构,同时还在Redis String加减功能的基础上支持了边界设置,可以将INCRBY、INCRBYFLOAT的结果限制在一定的范围内,超出范围则提示错误。该数据结构已开源,更多信息请参见TairString

  • CAS和CAD命令可实现简洁高效的高性能分布式锁

最佳实践:基于TairString实现高性能乐观锁基于TairString实现高效限流器

Hash增强

exHash

TairHash支持为field设置过期时间和版本,提高了Hash数据结构的灵活性,简化了很多场景下的业务开发工作。该数据结构已开源,更多信息请参见TairHash

最佳实践:基于TairHash实现用户多设备登录管理

Zset增强

exZset

TairZset可实现256个维度的double类型的分值排序,提供普通排行榜和多维排行榜的能力。该数据结构已开源,更多信息请参见TairZset

最佳实践:基于TairZset轻松实现多维排行榜基于TairZset实现分布式架构排行榜

GeoSpatial

GIS

TairGIS是一种使用R-Tree做索引,支持地理信息系统GIS(Geographic Information System)相关接口的数据结构。支持点、线、面的查询,支持包含、被包含、相交等多种关系判断。该数据结构已开源,更多信息请参见TairGIS

最佳实践:基于TairGIS实现电子围栏基于TairGIS实现同城购业务

Doc(JSON)

Doc

RedisJSON

TairDoc是一种文档类型的数据结构,支持JSON标准,类似RedisJSON模块。同时,TairDoc数据以二进制树的方式存储,支持对JSON中子元素进行快速访问。

Search

Search

RediSearch

TairSearch提供类似Elasticsearch(ES-LIKE)的语法,提供种类更多、效果更准确的分词器,查询性能更佳。

TimeSeries

TS

RedisTimeSeries

TairTS相比较RedisTimeSeries具备更强的标签(Tag)扩展能力,支持Skey(Tag)的两级Hash结构时间线,支持对Skey(Tag)进行二级时间线聚合查询,支持对历史时序数据的更新或累加等。

最佳实践:基于TairTS实现秒级监控

Sketches

Bloom

RedisBloom

TairBloom兼容RedisBloom,支持动态扩容,同时通过64位的Hash算法降低Hash碰撞率,显著降低大数据的冲撞率。

最佳实践:推荐系统、爬虫系统,更多信息请参见Bloom使用Bloom Filter高效管理游戏活动推送

Cpc

TairCpc是基于CPC(Compressed Probability Counting)压缩算法开发的数据结构,支持仅占用很小的内存空间对采样数据进行高性能计算,支持滚动窗口和滑动窗口,可以更好地支持流式运算,支持大数据分析中常用的聚合算子,如:DISTINCTCOUNTMAXMINFIRSTLASTSQUARED等。

Bitmap

Roaring

TairRoaring提供高效的计算模块和极高的稳定性,支持多位图运算能力,提升了性能和空间效率。

最佳实践:基于TairRoaring实现人群圈选方案

向量检索

Vector

Redis Search (Vector Similarity)

TairVector是Tair自研的扩展数据结构,提供高性能、实时,集存储、检索于一体的向量数据库服务。

最佳实践:

常见问题

云数据库 Tair(兼容 Redis)是否支持Redis stack server?

由于Redis开源协议限制,阿里云Redis开源版Tair(企业版)均不支持Redis stack server。

为解决该问题,Tair(企业版)推出自研的扩展数据结构,包括exString(包含Redis String命令增强)、exHashexZsetGISBloomDocTSCpcRoaringSearchVector,整体比Redis stack server支持更多的数据结构,而部分数据结构在性能上也优于Redis stack server。