创建Tair实例前,您需要结合产品性能、价格、业务场景、工作负载等因素,做出性价比与稳定性最优的决策。本文围绕以上因素,着重介绍实例类型、引擎版本、架构、存储介质,为您的选型提供相关参考。
选项流程
通常,您需要结合产品性能、价格、业务场景(例如用作高速缓存或内存数据库)、工作负载等因素,选择实例的类型与规格,推荐的选型流程如下:
在选型过程中 ,您可以在价格计算器中获取不同实例规格的价格信息。
选型操作 | 说明 |
云数据库 Tair(兼容 Redis)在提供Redis开源版的同时,还基于阿里云内部使用的Tair产品研发并推出Tair(企业版),为您提供更强的性能、更多的数据结构和更灵活的存储方式。 | |
推荐选择云原生版。 | |
云数据库 Tair(兼容 Redis)支持标准架构、集群架构和读写分离架构,可满足不同的业务场景对业务读写能力、数据量和性能的要求。 | |
当实例因不可预料的原因(例如设备故障、机房断电等)发生故障,容灾机制可用于保障数据的一致性和业务可用性。云数据库 Tair(兼容 Redis)提供多种灾备方案供您选择,可满足不同的业务场景。 | |
推荐使用更新的大版本以支持更多的功能和特性。 | |
提前预估可能消耗的内存容量,可以帮助节约成本、避免频繁变更规格给业务带来的影响。 | |
完成上述实例的选型后,您可以通过控制台或调用OpenAPI创建Redis实例。 | |
当您完成选型并开始使用Redis实例后,您需要观察业务正常运行状态下的性能监控信息,验证当前实例的服务能力是否符合预期。 |
选择开源版或企业版
云数据库 Tair(兼容 Redis)在提供Redis开源版的同时,还基于阿里云内部使用的Tair产品研发并推出企业级内存数据库产品,即Tair(企业版)。Tair(企业版)从访问延时、持久化需求、整体成本这三个核心维度考量,基于DRAM、NVM和ESSD云盘存储介质,推出了多种系列,为您提供更强的性能、更多的数据结构和更灵活的存储方式,满足不同场景下的业务需求。
Tair(企业版)在兼容Redis开源版的基础上,还支持了一些高级特性(例如通过数据闪回按时间点恢复数据、代理查询缓存、全球多活等),关于Redis开源版和Tair(企业版)的能力和性能的详细对比,请参见特性对比。
各系列支持的命令与参数,请参见Redis命令支持概览和设置实例参数。
类别 | 系列 | 特点 | 适用场景 |
Tair(企业版) |
| 以性能为中心的关键业务场景。 | |
| 需要高性能且高数据持久化要求,且成本作为次要考虑因素的数据缓存与存储场景。 | ||
| 大存储、低访问密度、低访问延迟要求,且成本作为首要考虑因素的数据存储场景。 | ||
Redis开源版 | 无 | 兼容开源Redis,高性能。 | 适用于标准化Redis使用和迁移场景。 |
选择云原生版或经典版
云原生版或经典版的对比如下。
对比项 | 云原生实例(推荐) | 经典实例 |
架构 | 基于新一代管控架构,更灵活、扩容能力更强。后续的产品将基于此架构演进。 | 基于传统管控架构。集群架构实例为预设固定规格,不支持自定义。 |
扩容能力 |
|
|
选择部署架构
云数据库 Tair(兼容 Redis)支持三种不同的部署架构,可满足不同的业务场景对业务读写能力、数据量和性能的要求。
下文默认介绍高可用类型的实例架构。标准架构和集群架构还支持单副本类型,但单副本类型无高可用功能,仅适用于测试等纯缓存场景。
实例架构 | 简介 | 适用场景 |
采用主从(master-replica)模式搭建。主节点提供日常服务访问,从节点提供HA高可用。当主节点发生故障,系统会自动在30秒内切换至从节点,保障业务平稳运行。 |
| |
|
| |
|
说明 由于数据同步至只读节点存在一定延迟,不适用于数据一致性要求高的场景,如对数据一致性要求高建议选用集群架构。 |
集群架构可选择不同的连接模式:
代理模式:客户端的请求由代理节点转发至数据分片,可享受代理节点带来的负载均衡、读写分离、故障转移、代理查询缓存(仅内存型支持)、长连接等特性能力。更多信息,请参见Tair Proxy特性说明。
直连模式:可通过直连地址绕过代理,直接访问后端的数据分片(类似连接开源Redis集群)。相比代理模式,直连模式节约了通过代理处理请求的时间,可以在一定程度上提高Tair服务的响应速度。
选择容灾方案
灾备方案 | 灾备级别 | 说明 |
★★★☆☆ | 主从节点部署在同一可用区中的不同机器上,当任一节点发生故障时,由高可用HA(High Availability)系统自动执行故障切换,避免单点故障引起的服务中断。 | |
★★★★☆ | 主从节点分别部署在同一地域下两个不同的可用区,当任一可用区因电力、网络等不可抗因素失去通信时,高可用HA系统将执行故障切换,确保整个实例的持续可用。 | |
★★★★★ | 由多个子实例构成全球分布式实例,所有子实例通过同步通道保持实时数据同步,由通道管理器负责子实例的健康状态监测、主从切换等等异常事件的处理,适用于异地灾备、异地多活、应用就近访问、分摊负载等场景。更多介绍,请参见全球多活。 |
选择大版本
可根据业务需求选择大版本(各大版本均长期维护),推荐您使用较新的大版本以支持更多的特性,更多信息请参见Redis开源版大版本新特性与兼容性。
大版本的选择存在一定的约束,具体如下:
实例及其创建方法 | 支持的实例类型 | 支持的引擎版本 | 支持的架构 |
云原生版实例 | Redis开源版 | 7.0 6.0 5.0 | 标准架构 集群架构 读写分离架构 |
Tair(企业版)内存型 | 兼容Redis 7.0 兼容Redis 6.0 兼容Redis 5.0 | 标准架构 集群架构 读写分离架构 | |
Tair(企业版)持久内存型 | 兼容Redis 6.0 | 标准架构 集群架构 读写分离架构 | |
Tair(企业版)磁盘型 | 兼容Redis 6.0 | 标准架构 | |
经典版实例 | Redis开源版 | 5.0 4.0 | 集群架构 标准架构 读写分离架构 |
Tair(企业版)内存型 | 5.0 | 集群架构 标准架构 读写分离架构 |
预估内存规格
通常情况下,您需要考虑下述因素预估可能消耗的内存容量并在创建实例时选择对应的规格,该操作有助于节约成本、避免频繁变更规格给业务带来的影响,助力业务快速上云。
在确定云数据库 Tair(兼容 Redis)实例的内存容量时,首先要考虑存储的业务数据大小,除此之外,您还需额外考虑Redis自身运行占用的必要内存开销(例如进程元数据、复制缓冲区、碎片等)。
不同于自建Redis数据库,选用云数据库 Tair(兼容 Redis)时,您无需再额外考虑持久化Fork写时复制占用的内存开销以及增强功能(如安全白名单、审计、大Key、热Key等)的内存开销,这些开销由阿里云承担,不计入购买的实例内存容量。
Key的数据类型、长度和数量。
说明如果使用可包含元素的数据类型(例如Hash),您还需要计算每个Key中,各元素的数量和长度。
Value的长度。
Key的过期时间与逐出策略。
访问模型,例如大量的客户端连接、使用Lua脚本或事务等,均需要为其预留适量的内存。
中长期的业务增长情况。
创建Redis实例
完成上述实例的选型后,您可以通过控制台或调用OpenAPI创建Tair实例:
控制台:创建Redis实例。
OpenAPI:CreateInstance。
服务能力验证与调整
云数据库 Tair(兼容 Redis)支持非常丰富的监控指标,当您完成选型并开始使用Tair实例后,建议您观察业务正常运行状态下的性能监控信息,验证当前实例的服务能力是否符合预期。具体操作,请参见查看监控数据。
您也可以使用Redis-benchmark执行性能压测进行验证,更多信息,请参见Redis-benchmark使用说明。
例如,当您通过性能监控发现实例内存使用率一直较高,您需要先排查内存使用率较高的原因,如无异常,可升级至更高的规格,具体操作,请参见变更实例配置。关于实例性能类问题的排查方法,请参见: