本文介绍云原生内存数据库Tair集成的数据结构,以及与Redis Stack Server的功能对比。
云数据库Redis社区版与开源Redis相同,支持String、List、Hash、Set、Sorted Set、Stream等数据类型,能够满足大部分场景下的开发需求,但在一些复杂场景中,原生数据类型无法直接满足某些业务需求,需要通过开发大量代码、使用Lua脚本等复杂的方式实现。
Tair扩展数据结构与Redis Stack模块(Modules)
类型 | 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)的语法,提供种类更多、效果更准确的分词器,查询性能更佳。 | |
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自研的扩展数据结构,提供高性能、实时,集存储、检索于一体的向量数据库服务。 |
Tair客户端
为帮助您更方便地使用Tair扩展数据结构,Tair团队在部分Redis客户端的基础上开发了Tair客户端,您可以通过Tair客户端直接调用Tair扩展数据结构。
Tair客户端 | 说明 |
TairJedis是基于Jedis开发的Tair客户端。 | |
AlibabaCloud.TairSDK是基于.NET Core 5.0和StackExchange.Redis2.5.61开发的Tair客户端。 | |
Tair-go是基于go-redis开发的Tair客户端。 | |
Tair-py是基于redis-py开发的Tair客户端。 |
Tair客户端的使用方法与Redis客户端相同,例如使用TairJedis连接Tair与使用Jedis连接Tair的方法相同。
除上述客户端以外,您也可以通过Redis客户端(如Jedis、PhpRedis等)调用Tair扩展数据结构。您需要先在应用代码中定义Tair扩展数据结构命令,然后再使用这些命令,更多信息,请参见通过客户端程序连接Tair。