创建Redis实例前,您需要结合产品性能、价格、业务场景、工作负载等因素,做出性价比与稳定性最优的决策。本文围绕以上因素,着重介绍实例类型、引擎版本、架构、存储介质,为您的选型提供相关参考。

了解云数据库Redis产品系列

云数据库Redis版(ApsaraDB for Redis)是兼容开源Redis协议、提供丰富存储介质的数据库服务,基于双机热备架构及集群架构,可满足高吞吐、低延迟及弹性变配等业务需求。

图 1. 一图了解云数据库Redis产品系列
一图了解云数据库Redis产品系列

选型流程

通常,您需要结合产品性能、价格、业务场景(例如用作 高速缓存 还是 内存数据库 )、工作负载等因素,选择实例的类型与规格,推荐的选型流程如下:

说明 关于费用的相关信息,请参见收费项与价格
选型操作 说明
选择云盘版或本地盘版 当前云数据库Redis的本地盘实例功能较为完整,云盘版实例为云原生基础架构,支持集群无感扩缩容,可通过自定义分片数量的方式来实现扩缩容,未来会以云盘版为主要演进方向。
选择社区版或企业版 云数据库Redis在提供社区版的同时,还基于阿里云内部使用的Tair产品研发并推出强化版Redis服务(Redis企业版),为您提供更强的性能、更多的数据结构和更灵活的存储方式。
选择部署架构 云数据库Redis支持标准架构集群架构读写分离架构,可满足不同的业务场景对业务读写能力、数据量和性能的要求。
选择容灾方案 当云数据库Redis实例因不可预料的原因(例如设备故障、机房断电等)发生故障,容灾机制可用于保障数据的一致性和业务可用性。云数据库Redis提供多种灾备方案供您选择,可满足不同的业务场景。
选择大版本 推荐使用更新的大版本以支持更多的功能和特性。
预估内存规格 提前预估可能消耗的内存容量,可以帮助节约成本、避免频繁变更规格给业务带来的影响。
创建Redis实例 完成上述实例的选型后,您可以通过控制台或调用OpenAPI创建Redis实例。
服务能力验证与调整 当您完成选型并开始使用Redis实例后,您需要观察业务正常运行状态下的性能监控信息,验证当前实例的服务能力是否符合预期。

选择云盘版或本地盘版

当前云数据库Redis的本地盘实例功能较为完整,云盘版实例为云原生基础架构,支持集群无感扩缩容,可通过自定义分片数量的方式来实现扩缩容,未来会以云盘版为主要演进方向,详细对比如下。

对比项 本地盘实例 云盘实例
架构 基于云数据库Redis传统管控架构。 基于云数据库Redis新一代管控架构。
说明 后续的产品将基于此架构演进,同时将会提供本地盘实例到云盘实例的迁移功能。
扩容能力
  • 扩容耗时较长。
  • 集群架构的实例扩容会有闪断。
  • 集群架构实例的分片节点的扩展数固定,例如2分片、4片、8分片等。
  • 扩容能力比本地盘更好。
  • 集群架构的实例扩容无闪断。
  • 集群架构的实例支持自由调整分片节点的数量(最少1个分片节点),支持单分片的扩缩容,可更好地应对读写热点和倾斜。
功能支持度 支持全面的功能。 支持大部分功能。其它功能正在支持中,例如按量付费计费方式、日志管理等。
说明

选择社区版或企业版

云数据库Redis在提供社区版的同时,还基于阿里云内部使用的Tair产品研发并推出企业级缓存服务产品,即Redis企业版(Tair)。Redis企业版从访问延时、持久化需求、整体成本这三个核心维度考量,基于DRAM、NVM和ESSD云盘存储介质,推出了多种系列,为您提供更强的性能、更多的数据结构和更灵活的存储方式,满足不同场景下的业务需求。

注意
类别 系列 特点 适用场景
Redis企业版 性能增强型 以性能为中心的关键业务场景。
持久内存型
  • 超高性价比:相同容量下对比Redis社区版,价格降低30%左右,性能可达原生Redis的90%。
  • 掉电数据不丢失:强大的命令级持久化保障,每个写操作持久化成功后返回,可将其作为内存数据库(非缓存)使用。
  • 大规格优化:解决大规格下执行AOF重写调用fork引起的延时抖动等问题。
  • 高兼容性:兼容绝大部分原生Redis的数据结构和命令。
需要高性能且高数据持久化要求,且成本作为次要考虑因素的数据缓存与存储场景。
容量存储型
  • 低成本:最低为Redis社区版的15%。
  • 云盘存储:数据分布在ESSD云盘,容量可达百TB级别,拥有高数据可靠性。
  • 大规格优化:解决了原生Redis固有的fork问题而预留部分内存的问题。
  • 高兼容性:兼容大部分原生Redis的数据结构和命令。
大存储、低访问密度、低访问延迟要求,且成本作为首要考虑因素的数据存储场景。
Redis社区版 兼容开源Redis,高性能。 适合中小型或验证型应用,适用于标准化Redis使用和迁移场景。

选择部署架构

云数据库Redis支持三种不同的部署架构,可满足不同的业务场景对业务读写能力、数据量和性能的要求。

图 2. 部署架构对比
部署架构对比
说明
  • 集群架构和读写分离架构的实例默认提供代理(Proxy)连接地址,客户端的请求由代理节点转发至数据分片,可享受代理节点带来的负载均衡、读写分离、故障转移、代理查询缓存(仅性能增强型支持)、长连接等特性能力。更多信息,请参见Redis Proxy特性说明
  • 对于集群架构的实例,可申请直连地址,通过该地址可绕过代理,直接访问后端的数据分片(类似连接原生Redis集群)。相比代理模式,直连模式节约了通过代理处理请求的时间,可以在一定程度上提高Redis服务的响应速度。
实例架构 简介 适用场景
标准架构 采用主从(master-replica)双副本架构,由主节点提供日常服务访问,备节点提供高可用。当主节点发生故障,系统会自动在30秒内切换至备节点,保障业务平稳运行。
  • 对Redis协议兼容性要求较高的业务。
  • 将Redis作为持久化数据存储使用的业务。
  • 单个Redis性能压力可控的场景。
  • Redis命令相对简单,排序和计算之类的命令较少的场景。
集群架构
  • 由代理节点、数据分片和配置服务器组件构成,可通过增加数据分片的方式实现横向扩展。
  • 每个数据分片均为双副本(分别部署在不同机器上)高可用架构,主节点发生故障后,系统会自动进行主备切换保证服务高可用。
  • 数据量较大的场景。
  • 整体读写请求的QPS压力较大的场景。
  • 吞吐密集型、高性能应用场景。
读写分离架构
  • 由代理节点、主从节点和只读节点构成。
  • 只读节点采取链式复制架构,扩展只读节点个数可使整体实例性能呈线性增长。
  • 读请求QPS压力较大的场景(如热点数据集中)。
  • 对Redis协议兼容性要求较高的业务场景,例如规避集群架构的使用限制
说明 由于数据同步至只读节点存在一定延迟,不适用于数据一致性要求高的场景,可选用集群架构。

选择容灾方案

图 3. Redis容灾架构演进
Redis容灾架构演进
灾备方案 灾备级别 说明
单可用区高可用方案 ★★★☆☆ 主备节点部署在同一可用区中的不同机器上,当任一节点发生故障时,由高可用HA(High Availability)系统自动执行故障切换,避免单点故障引起的服务中断。
同城容灾方案 ★★★★☆ 主备节点分别部署在同一地域下两个不同的可用区,当任一可用区因电力、网络等不可抗因素失去通信时,高可用HA系统将执行故障切换,确保整个实例的持续可用。
跨地域容灾方案 ★★★★★ 由多个子实例构成全球分布式实例,所有子实例通过同步通道保持实时数据同步,由通道管理器负责子实例的健康状态监测、主备切换等等异常事件的处理,适用于异地灾备、异地多活、应用就近访问、分摊负载等场景。更多介绍,请参见Redis全球分布式缓存简介

选择大版本

可根据业务需求选择大版本(各大版本均长期维护),您也可以使用更新的大版本以支持更多的特性,详情请参见Redis 6.0新特性说明Redis 5.0新特性说明Redis 4.0新特性说明

大版本的选择存在一定的约束,具体如下:

管控架构 实例类型 支持的大版本
本地盘版 社区版
  • 4.0版本
  • 5.0版本
企业版(性能增强型
  • 5.0版本
云盘版 社区版
  • 5.0版本
  • 6.0版本
企业版(性能增强型
  • 5.0版本
企业版(持久内存型
  • 1.0版本(自研,兼容Redis 5.0版本)
企业版(容量存储型

预估内存规格

通常情况下,您需要考虑下述因素预估可能消耗的内存容量并在创建实例时选择对应的规格,该操作有助于节约成本、避免频繁变更规格给业务带来的影响,助力业务快速上云。

注意 在确定云数据库Redis实例的内存容量时,首先要考虑存储的业务数据大小,除此之外,您还需额外考虑Redis自身运行占用的必要内存开销(例如进程元数据、复制缓冲区、碎片等)。

不同于自建Redis数据库,选用云数据库Redis时,您无需再额外考虑云数据库Redis持久化Fork写时复制占用的内存开销以及云数据库Redis增强功能(如安全白名单、审计、大Key、热Key等)的内存开销,这些开销由阿里云承担,不计入购买的实例内存容量。

  • Key的数据类型、长度和数量。
    说明 如果使用可包含元素的数据类型(例如Hash),您还需要计算每个Key中,各元素的数量和长度。
  • Value的长度。
  • Key的过期时间与逐出策略
  • 访问模型,例如大量的客户端连接、使用Lua脚本或事务等,均需要为其预留适量的内存。
  • 中长期的业务增长情况。

创建Redis实例

完成上述实例的选型后,您可以通过控制台或调用OpenAPI创建Redis实例:

服务能力验证与调整

云数据库Redis支持非常丰富的监控指标,当您完成选型并开始使用Redis实例后,建议您观察业务正常运行状态下的性能监控信息,验证当前实例的服务能力是否符合预期。具体操作,请参见查看监控数据

说明 您也可以使用Redis-benchmark执行性能压测进行验证,更多信息,请参见Redis-benchmark使用说明
例如,当您通过性能监控发现实例内存使用率一直较高,您需要先排查内存使用率较高的原因,如无异常,可升级至更高的规格,具体操作,请参见变更实例配置。关于实例性能类问题的排查方法,请参见: