内核能力Redis 内核(开源增强版)基于开源 Redis 的内核代码进行强化,在兼容 Redis 的基础上,对稳定性、弹性、安全及可观测性等关键能力进行了大量改进,支持 X86 处理器。Tair 内核 (企业版)作为阿里云自研的全场景(缓存与持久化数据库) KV 服务,Tair 具备阿里云 Redis 开源版的良好兼容性和所有内核优势,并在此基础上新增大量企业级特性,能够覆盖 Redis 开源版难以应对的场景,并提供稳定可靠的高性能、低时延服务,包括多线程处理能力、多种存储介质的支持、全球多活能力、扩展型数据结构(简称为 modules)、半同步、PITR(按时间点恢复数据)、TDE(透明加密) 等,进一步从性能、稳定性、成本、安全、扩展性等多个角度进行增强。兼容性Redis 兼容性阿里云 Redis 开源版及 Tair 均兼容多个流行的 Redis 版本,如 5.0、6.0 及 7.0,您可根据需求或使用习惯选择最适合的版本。此外,在阿里云进行版本升级无需应用程序停机,这意味着您可随时根据业务发展需要灵活地更新版本。扩展型数据结构(modules)Tair 内置了多种扩展型数据结构(简称为 modules),如 JSON 语法支持、全文索引、向量检索、支持 Fields 过期的 Hash 结构、原生的内核级分布式锁、Bloom 过滤器等,合理利用这些 modules 能够显著提升业务功能的开发速度并简化代码逻辑,同时也能减少因业务逻辑缺陷带来的数据错误、性能异常等常见问题。memcached 兼容性Tair 不仅兼容 Redis,而且兼容 memcached 1.2,您可以根据您的需求选择相应的版本,以确保最佳兼容性。Tair 的多种存储介质Tair(内存型)对性能及稳定性进行了全面增强:采用内存作为存储介质,结合多线程处理能力可达到 2~3 倍的 Redis 开源版性能,以及 2~3 倍的 Lua 并行执行能力(需升级至 Tair 6.0 及更高版本)。因此,在各类对性能、时延和稳定性有严苛要求的场景中,Tair 均能出色应对,是应用程序的“超级”加速器。Tair(持久内存型)具有较高的性价比:采用非易失性内存作为存储介质,通过硬件级持久化确保数据在断电情况下的完整性。Tair 持久内存型通过在 Tair 内核、硬件及操作系统之间的定向优化,不仅提供了接近 Redis 开源版(使用内存作为存储介质)的性能,而且最多能够将数据的存储成本降低 30% 。Tair (磁盘型)低成本存储超大规模数据:在 Tair 磁盘型产品中,内存用于加速,而磁盘(ESSD/SSD)作为最终的数据存储介质。磁盘存储相较于内存存储成本更加低廉,因此 Tair 磁盘型可以以远低于纯内存存储的成本,帮助您存储数百 TB 数据。Tair 磁盘型适用于对存储成本和存储规模有高要求的场景。服务可用性及数据可靠性服务可用性阿里云 Redis 开源版及 Tair 均支持双可用区部署,在单一可用区故障时仍然能够保证服务的连续性。Tair 额外支持基于多活能力实现跨地域的高可用部署模式。Tair 的多活模式最多支持“3 点 6 向”同步(每个地域均为 1 个独立的可读写实例,且每个实例之间可双向同步),任意实例的新增数据均会自动的同步至其它实例,确保整个多活架构中不同实例间的数据为最终一致。备份与恢复阿里云 Redis 开源版及 Tair 均支持全量备份与全量恢复,您可通过配置自动备份任务来定时自动生成备份,也可通过触发备份任务来立即生成备份。为了提升服务的稳定性,阿里云对全量备份进行了强化,生成 RDB 文件(即执行 bgsave)时对请求带来的阻塞时长不会随着数据存储规模的增加而增加。Tair 额外支持数据的 PITR(按时间点恢复数据),允许将数据恢复至 7 天内的任意时间点,最小时间粒度为秒。如果您有更高的数据可靠性需要,建议您开启此功能。半同步Tair 额外提供了半同步功能,开启该功能后,写入主节点的数据在传输至备节点后才向客户端返回写入成功的信号。因此,相较于异步同步可能存在的"同步延迟",Tair 的半同步可避免主节点故障时,因主备同步存在延迟而带来的部分增量数据损失风险。性能、架构与扩展性响应时延与请求处理能力阿里云 Redis 开源版能够为应用程序提供亚毫秒级的响应时延,为应用程序进行加速。在此基础上,Tair(内存型)不仅响应时延更低,而且提供 2 至 3 倍的每秒请求处理能力(QPS)。阿里云 Redis 开源版及 Tair 在分布式(集群)架构中均支持由 2 分片扩展至最大 256 分片。相较于 2 分片,256 分片可提供高达 128 倍的请求处理能力,256 分片的分布式(集群)架构可提供高达 7000 万次/秒的低时延请求处理能力。架构及扩展性阿里云 Redis 开源版及 Tair 均提供多种架构,用于应对不同的场景需求。
• “高可用”架构提供了快速的故障恢复能力,确保应用程序的正常运行;
• “分布式(集群)”架构的扩展性及灵活性支持搭配出上千种资源规格,几乎能够覆盖所有场景的不同性能与存储规模需求;
• “智能读写分离”适合需要提供更大读请求负载的场景,最大支持 9 个只读节点的扩展能力,能够对读请求的增长提供有力支撑。并且,智能读写分离基于 Proxy 组件实现了请求类型(读与写)的自动识别与转发,因此在接入“智能读写分离”架构时您无需修改任何代码,即可享受读请求服务能力的提升;
• “单节点”适合测试环境或无数据可靠性要求的生产环境,在这些场景中,“单节点”架构可有效降低数据库的使用成本。
扩容与缩容阿里云 Redis 开源版及 Tair 提供了多种可选的规格,并允许通过规格、节点、分片的自由搭配生成最适合当前需要的资源。您可在业务初期选择较小的规格,在业务发展期或开展运营活动时您可根据需要随时扩容,在业务收缩期进行缩容。扩容与缩容操作均无需停机,后台将会保证规格变更前后数据的完整性和一致性,以及参数、账号与访问控制、连接地址等配置的一致性。 分布式(集群)架构在分片发生增减时会伴随着数据的自动重平衡,在数据的平衡过程中,改良的数据迁移逻辑使 KEY 的迁移对请求只有微小影响,且不会产生大 KEY 的迁移失败,基于此特性,您可在任何时间发起分片的增减而无需等待在业务低峰期(如深夜)进行。架构间的不停机转换阿里云 Redis 开源版及 Tair 支持不同架构之间的在线转换,如“非集群”与“集群”架构之间的转换、“单节点”与“高可用”架构之间的转换、读写分离的开启与关闭等。这些架构间的转换均无需停机,后台将会保证架构转换前后数据的完整性和一致性,以及参数、账号与访问控制、连接地址等配置的一致性。监控告警与异常排查监控与告警阿里云 Redis 开源版及 Tair 提供了多个维度的监控指标与告警功能,您可通过这些指标观测实例多个维度的健康概况,同时可以根据需要设置这些指标的告警阈值。我们提供了监控数据的导出功能,因此您可通过 OpenAPI 将监控数据导入至阿里云的其他监控服务或自建的监控系统中,实现更灵活的观测性需求。慢日志慢日志功能默认开启,支持配置日志的记录闯值。慢日志可帮助您分析性能问题,并定位造成性能问题的客户端或命令。大 KEY、热 KEY 问题大 KEY、热 KEY 是 Redis 使用过程中的常见问题,您可通过“离线 KEY 全量分析”功能对实例中的所有数据进行全量分析,找出数据中存在的大 KEY 并进行处理,以保证服务的持续健康运行。而在应急场景中,可通过“实时大、热 KEY 分析”功能对当前实例请求进行实时分析,找出当前请求涉及的大、热 KEY。时延洞察在生产场景中,部分异常命令可能会使实例整体的响应时延发生异常。您可通过“时延洞察”功能对不同类型命令的时延进行观测,挖掘出时延异常的命令并进行处理。安全与审计访问控制支持基于 IP 的访问控制,仅有加入白名单的客户端(IP)才被允许连接实例。同时,IP 白名单支持与多个实例绑定,可实现多个实例访问控制的批量管理。身份验证支持基于账号密码的验证式登录。如果您需要使用动态密码,可创建基于阿里云 KMS 服务提供的托管型账号人而实现密码的按需自动轮转,进一步提升账号的安全性。通讯链路加密可通过开启 TLS 功能实现通讯链路的加密,避免客户端与数据库之间的请求在网络中被窃听、篡改。风险命令动态屏蔽可通过参数配置功能对高风险命令(如 KEYS、HGETALL 等高消耗命令)进行屏蔽,从而提升服务的稳定性。风险命令的屏蔽无需重启实例,在设置后立即生效,在应急场景中能够起到良好的“止血”效果。数据透明加密Tair 额外提供了 TDE(透明数据加密)功能,确保所有生成的备份文件(RDB)均被您自带的密钥所加密。写操作审计您可通过开启“审计日志”功能来对所有的写入操作进行记录。开启该功能后,所有写操作将会被实时记录,包括客户端 IP、时间及命令详情。审计日志支持实时分析,可帮助您快速排查各类数据异常问题。Tair 的 AI 能力向量检索Tair(内存型)内置向量检索功能(TairVector),提供HNSW(Hierarchical Navigable Small World)和暴力搜索(Flat Search)两种索引算法。同时,TairVector 支持欧式距离(Euclidean distance)、向量内积(Internal product)、余弦距离(Cosine distance)和 Jaccard 距离(Jaccard distance)等多种距离函数。优势特性 TairVector 的所有数据存储在内存中,支持实时更新索引,具有更短的读写时延。同时,优化后的数据结构使数据的占用空间更小。 TairVector 支持向量检索与全文检索组合的混合检索,支持创建标量(标签属性等)倒排索引,并提供先标量后向量的 KNN 检索特性。