Redis入门训练营:课时1:Redis(Tair) 产品介绍
Redis(Tair) 产品介绍
内容介绍
一、 Redis是什么
二、 Redis的常见用法
三、 Cache用法
四、 开源Redis特点
五、 阿里云Tair发展历史
六、 Redis主要架构
一、Redis是什么
随着互联网的高速发展,访问量的提升,原来关系型数据库出现了性能瓶颈,也渐渐开始投入对高并发,低延迟基于内存的数据库研究,memcache由于设计过于简单,没有很好的应对市场需求和竞争已经基本退出舞台,而Redis具备成熟的开源社区,易于使用,拥有丰富的数据结构,可以轻松应对各种应用场景,Redis是目前最受欢迎的数据库之一。
近些年,各行各业访问流量不断增长,而Redis具有高性能,可扩展性强的特点,完美的契合了高增长的业务需求,因此Redis迅速在各行各业应用起来,Redis目前主要的应用场景是缓存,对应用起到加速的作用,有数据库,有数据访问的地方就有加速的需求,因此就有对Redis和跳的需求。
二、Redis 的常见用法
Redis的常见用法包括两种主要架构方式。首先,一种是在应用程序中加入缓存(cache)并支持持久化存储。这使得Redis可以作为通用的性能提升工具,为后端处理流量和加速业务提供了支持。
另一种常见用法是在两个应用程序之间引入Redis缓存架构,这种架构的主要目标是解决被调用应用程序的计算负担瓶颈,同时也可以用来存储中间结果以供后续访问。
随着缓存技术的进一步发展,我们也看到Redis正在演化成内存数据库,传统的三层架构中的应用程序与数据库的交互可以简化为应用程序与内存数据库的交互,数据可以直接存储在内存数据库中,从而实现更高效、更便捷的业务操作。
在大数据计算领域,Redis还可用于将大数据计算结果导入内存数据库,以供在线应用调用,这在各种大数据场景中非常有用,包括广告推荐和人群分类等,这些应用方式充分发挥了Redis的高性能和灵活性,为各种应用场景提供了强大的支持。
三、Cache 用法
首先,第一种缓存模式通常在互联网行业广泛使用。在这种模式下,需要应用程序自行管理缓存,它在访问数据库之前会先检查缓存中是否存在相应数据,如果没有找到缓存,那么在数据库更新后会再次更新缓存,这是一种控制逻辑完全实现在应用程序内部的模式,缓存并不直接与数据库进行互动。
第二种是订阅模式,这在互联网行业中被广泛采用。应用程序会将数据写入数据库,并通过某个订阅通道监听数据库的数据更新。一旦有数据更新,它会被同步到缓存中,这样应用程序读取数据时可以直接从缓存中获取,"Ro"和"Rw"是缓存系统中常见的数据同步机制应用方式之一。
"Ro" 模式是只读模式,它首先检查缓存中是否存在所需数据,如果有,直接使用,如果没有,则从数据库中加载数据并放入缓存,以便下次访问可以直接从缓存中获取。
"Rw" 模式是读写模式,在数据更新时同时将数据写入缓存和后端数据库,以确保缓存与数据库的数据保持一致。
"Db right回写" 模式是在数据更新时只写入缓存。通常会有一个后台程序来检查缓存中的数据变化,然后异步地将数据写回后端数据库,这种模式的优点是数据写入速度很快,因为不需要写入后端持久性存储,然而,缺点是一旦更新后的数据没有被写入到后端数据库(例如,断电等情况),就可能导致缓存和后端数据库中的数据不一致。
总的来说,开源的Redis非常适合这些应用场景,因为它使用简单,不像搜狗等复杂的查询语言。
四、开源 Redis 特点
首先,Redis是一个纯内存的数据库,因此具有高性能。它提供了多种数据结构,如字符串、列表、哈希表、有序集合等,使开发人员可以根据业务需要选择适合的数据结构。
Redis还具备强大的可扩展性,支持分布式部署,集群模式可以轻松扩展存储容量。
然而,当业务规模扩大时,开源的Redis也可能面临一些问题。例如,在大容量下维护可能会变得非常复杂,维护成本会急剧上升。此外,如果基础设施不完善,可能会导致Redis排查问题变得困难,还存在一些安全性方面的缺陷。
阿里云Redis在开源Redis的基础上进行了更多的开发工作,以解决这些问题。
例如,在可管理性方面,阿里云提供了开箱即用的Redis实例,支持秒级监控、自动备份、封恢复、缓存分析和日志审计等能力。在可扩展性方面,支持灵活的规格变配,跨架构变配能力,以及无缝升降配,确保业务不受影响,在稳定性方面,提供了数十种监控指标和告警规则配置,以及一键诊断的能力,在安全性方面,提供了多种安全策略,包括访问控制、白名单、安全组等。
下面是自建Redis与阿里云托管Redis的能力对比
首先是在访问控制与数据安全上,阿里云Redis支持SSL、TDE,IP白名单,安全组等多种安全策略,支持全量备份,自动备份策略,支持多账号管理,只读账号,读写账号等。
而自建Redis需要投入一定的开发来支持不同的安全策略,仅支持一次性全量备份,自动备份策略需要通过外部工具实现,在账号管理上,需要基于ACL开发实现,在扩缩容和架构变更上,阿里云Redis支持横向纵向扩缩容,支持弹性,支持主从,集群的转换,支持主从开通读写分离模式。而自建Redis需要投入大量的运维操作达到上面的功能。
在基础实例管理上,阿里云Redis一键购买,100%托管,支持单可用区高可用,同城双机房高可用,而自建Redis需要完成资源规划,采购机器,自行管理实例节点,需要自行部署基于哨兵模式的高可用架构,搭建成本较高。
在监控告警与日志模块,阿里云Redis提供丰富的监控指标,支持配置实例告警,支持查看慢日志,审计日志,支持日志导出,而自建Redis可以通过info查看当前的监控值,历史监控需要借助外部的工具实现存储和展示,日志仅保留Redis默认的慢日志条数。
在实例分析能力上,阿里云Redis提供慢日志分析能力,大key,热key分析能力,流量倾斜分析,自建Redis需要借助外部的工具投入一定开发来完成,阿里云Redis提供了4个9的SLA。
五、阿里云 Tair 的发展历史
Tair阿里集团内的淘宝电商业务,从2009年开始正式承载了阿里集团的业务。经过多个业务场景的锤炼,如天猫、双11、优酷、春晚、菜鸟、高德等,它成为了一款真正的企业级内存数据库。
在2017年上云后,首先作为Redis企业版推向市场,现在已经成为独立品牌。从2010年开始开源以来,被许多公司广泛使用,例如美团、滴滴等。
这款产品具有极高的性能,可以提供比开源Redis高两倍的性能,轻松应对高流量负载。此外,Tair具备数据持久化能力,并在安全策略方面提供了多种保障措施,还提供了多种自研的数据结构,以使应用开发更加便捷。
为满足企业级用户的需求,Tair还开发了一些企业级能力,例如全球多活和数据闪回等。
应对不同的数据热度和用户访问需求,Tair提供了多种产品形态供用户选择:
极热数据和热数据的存储:适用于需要低延迟、大规模连接的业务场景,满足业务性能需求。
Tair持久内存型:适用于热数据以及温数据的存储,吞吐和延迟接近内存,有持久化需求的场景,具有较大容量存储,相比内存提供了更低的成本。
磁盘型:适用于对数据访问延迟要求不高但需要高存储容量的场景,基于阿里云的云盘技术研发,提供了较低的成本。
总之,阿里云的这款产品为企业级用户提供了多种选择,以满足不同数据量和性能需求的场景。
六、Tair 主要架构
Redis和Tair主要有三种不同的架构:
主从双复本架构:这种架构提供高可用性和切换功能。它适用于Redis命令相对简单,不涉及大量排序和计算的场景,并且在单个Redis性能压力可控的情况下使用。
Redis读写分离模式:这种架构包括代理服务器节点、主节点和只读节点。它适用于读请求较多且压力较大的场景,可以有效分担主节点的负载。
双副本集群版架构:每个分片服务器采用主从双副本的模式。这种架构适用于数据量较大、读写压力大、吞吐密集型的应用场景,支持数据和访问量的横向扩展能力。
与开源Redis、云托管Redis以及Tair这三者的比喻类似于自然界的水和不同方式存储和获取水的方式:
开源Redis 就像自然界的水源,它能够满足基本需求,但需要用户自己去获取,无法控制水质和温度等因素。
云托管Redis 就像桶装水,它提供了安全可靠的水源,并且用户可以根据需要购买所需的容量,但无法实现对水质和温度的精确控制。
Tair则类似于智能的指引水系统,它提供了更高级的功能,包括对水质和温度的控制,以及更高级的用户体验,用户可以按需使用,并且具有更多的智能化功能。
这个比喻形象地解释了这三者之间的区别和优劣势。