云数据库 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)的语法,提供种类更多、效果更准确的分词器,查询性能更佳。 | |
TimeSeries | RedisTimeSeries | TairTS相比较RedisTimeSeries具备更强的标签(Tag)扩展能力,支持Skey(Tag)的两级Hash结构时间线,支持对Skey(Tag)进行二级时间线聚合查询,支持对历史时序数据的更新或累加等。 最佳实践:基于TairTS实现秒级监控。 | |
Sketches | RedisBloom | TairBloom兼容RedisBloom,支持动态扩容,同时通过64位的Hash算法降低Hash碰撞率,显著降低大数据的冲撞率。 最佳实践:推荐系统、爬虫系统,更多信息请参见Bloom、使用Bloom Filter高效管理游戏活动推送。 | |
无 | TairCpc是基于CPC(Compressed Probability Counting)压缩算法开发的数据结构,支持仅占用很小的内存空间对采样数据进行高性能计算,支持滚动窗口和滑动窗口,可以更好地支持流式运算,支持大数据分析中常用的聚合算子,如: | ||
Bitmap | 无 | TairRoaring提供高效的计算模块和极高的稳定性,支持多位图运算能力,提升了性能和空间效率。 最佳实践:基于TairRoaring实现人群圈选方案。 | |
向量检索 | Redis Search (Vector Similarity) | TairVector是Tair自研的扩展数据结构,提供高性能、实时,集存储、检索于一体的向量数据库服务。 最佳实践: |