本文介绍Tair实例(云数据库Redis企业版)集成的数据结构,以及与Redis Stack Server的功能对比。

云数据库Redis社区版与开源Redis相同,支持String、List、Hash、Set、Sorted Set、Stream等数据类型,能够满足大部分场景下的开发需求,但在一些复杂场景中,原生数据类型无法直接满足某些业务需求,需要通过开发大量代码、使用Lua脚本等复杂的方式实现。

Tair实例(云数据库Redis企业版)集成了多个自研的数据结构,包括TairString(含CAS和CAD命令)、TairHashTairGISTairBloomTairDocTairTSTairCpcTairZsetTairRoaringTairSearch,从多方面扩展Redis的适用性,降低复杂场景下业务的开发难度,同时可以帮助您精简大量代码并提高业务整体性能,使您专注于业务创新。
说明

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

类型 Tair扩展数据结构 Redis Stack Server 说明
String增强
  • TairString是一种带版本号的string类型数据结构,同时还在Redis String加减功能的基础上支持了边界设置,可以将INCRBY、INCRBYFLOAT的结果限制在一定的范围内,超出范围则提示错误。该数据结构已开源,更多信息请参见TairString
  • CAS和CAD命令可实现简洁高效的Redis分布式锁

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

Hash增强 TairHash

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

Zset增强 TairZset

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

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

Doc(JSON) TairDoc RedisJSON

TairDoc完全兼容RedisJSON,同时支持JSONPointer和JSONPath两种语法,支持JSON格式到XML格式、YAML格式的转换。

Search TairSearch RedisSearch

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

Graph 图数据库GDB RedisGraph

图数据库(Graph Database,简称GDB)是一种支持Property Graph图模型、用于处理高度连接数据查询与存储的实时、可靠的在线数据库服务。更多信息请参见图数据库GDB

GeoSpatial TairGIS

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

最佳实践:基于TairGIS轻松实现用户轨迹监测和电子围栏

TimeSeries TairTS RedisTimeSeries

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

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

Sketches TairBloom RedisBloom

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

最佳实践:推荐系统、爬虫系统,更多信息请参见TairBloom

TairCpc

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

Bitmap TairRoaring

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

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

Tair客户端

为帮助您更方便地使用Tair扩展数据结构,Tair团队在部分Redis客户端的基础上开发了Tair客户端,您可以通过Tair客户端直接调用Tair扩展数据结构。

Tair客户端 说明
TairJedis TairJedis是基于Jedis开发的Tair客户端。
AlibabaCloud.TairSDK AlibabaCloud.TairSDK是基于.NET Core 5.0和StackExchange.Redis2.5.61开发的Tair客户端。
Tair-go Tair-go是基于go-redis开发的Tair客户端。
Tair-py Tair-py是基于redis-py开发的Tair客户端。
说明
  • Tair客户端的使用方法与Redis客户端相同,例如使用TairJedis连接Tair与使用Jedis连接Tair的方法相同。
  • 除上述客户端以外,您也可以通过Redis客户端(如Jedis、PhpRedis等)调用Tair扩展数据结构。您需要先在应用代码中定义Tair扩展数据结构命令,然后再使用这些命令,更多信息,请参见通过客户端程序连接Redis