发布于: Feb 11, 2022

2022 年 2 11 日,亚马逊云科技宣布通过与光环新网和西云数据的紧密合作,在中国区域(北京与宁夏)推出完全托管的、兼容 Redis 的内存数据库 Amazon MemoryDB for Redis

随着互联网的发展,数据库性能对于应用程序的成功至关重要。为了提高性能,要将读取数据库的时间延迟减少到微秒级别,我们通常采用的做法是在持久数据库之前放置一个缓存数据库,从而提高读取速度,带来更好的用户体验。

对于缓存,许多开发人员使用 Redis,这是一种开源的内存数据结构存储。事实上,根据 Stack Overflow 2021 年开发者调查,Redis 五年来一直是最受欢迎的数据库。

要在云上实施此设置,您可以使用 Amazon ElastiCache 实现低延迟缓存,并将 Amazon Aurora/RDS 或 Amazon DynamoDB 等持久数据库服务放在缓存后端,以最大程度地减少数据丢失。但是,此设置要求您在应用程序中引入自定义代码以保持缓存与数据库同步。这无疑会造成一定的学习成本和管理成本,与此同时您还需要兼顾考虑运行缓存数据库和后端持久化数据库的成本。

2021 8 月份我们发布了 Amazon MemoryDB for Redis,这是一套新的高持久性、兼容 Redis 的内存数据库。Amazon MemoryDB for Redis 能够帮助您经济高效地构建起读取性能达微秒级别、写入性能维持在个位数毫秒,而且持久性与可用性极高的应用程序。

Amazon MemoryDB for Redis 与开源 Redis 项目保持着良好的兼容性,您可以在这里使用自己熟悉的 Redis 数据类型、参数及命令。换句话说,您可以在之前已经积累的基于开源 Redis 的代码、应用程序、驱动程序及工具直接与 Amazon MemoryDB for Redis 配合使用。填补了 Amazon ElastiCache 对于缓存数据持久化层的空白。我们将其视作一种延续与扩展。

Amazon ElastiCache Amazon MemoryDB 之间的区别在于,前者旨在作为一项超高速缓存服务,一般来说需要一个搭配的主数据库配合使用。

Amazon MemoryDB 本身是一项完整的数据库服务,旨在独立运行。考虑到 Amazon MemoryDB 本质上是 ElastiCache for Redis 的高级层;从功能上讲,它是一个高性能数据库而不是缓存;从技术上讲,它是与它兼容的 Redis 引擎而修改实现。总而言之,Amazon MemoryDB for Redis 是一种实时数据库实现,基于开源 Redis 平台,且具备数据持久性。

推出后,Amazon MemoryDB 将支持开源 Redis 的所有核心数据 API,包括字符串、列表、集合、排序集合、散列、流、地理空间、位图和超级日志。每个集群可以支持最大~100TB 的内存存储容量,每个分片有一个副本。对于 Amazon MemoryDB,用户将能够使用他们已经使用的相同 Redis 数据结构和 API 构建应用程序,但具有完全托管数据库的额外好处。

Amazon MemoryDB 支持的用例有很多典型的用例

·      构建 web 和移动应用程序:使用多功能的 Redis  数据结构构建内容数据存储、聊天和消息队列以及地理空间索引,以满足需要低延迟和高吞吐量的数据密集型 web 和移动应用程序的需求。

·      在线游戏战斗服:为需要大规模、低延迟和高并发性才能进行实时更新的游戏应用程序构建玩家数据存储、会话历史记录和排行榜。 

·      实时流媒体和娱乐应用:运行高并发流式数据源以接收用户活动,并支持媒体和娱乐应用程序每天数百万次的请求。

下面我们来看看 Netflix 以及 Twilio 的客户案例:

Netflix 是世界领先的娱乐服务提供商之一,在190多个国家拥有2亿多会员,提供多种类型和不同语言的影视剧、纪录片。Netflix MCE 媒体工作流基础架构经理 Charles Zhao 表示:“我们的媒体平台采用的微服务架构,我们一直在寻找合适的数据库来支持该平台。我们非常高兴看到亚马逊云科技推出了 Amazon MemoryDB for Redis,它满足了我们对持久内存数据库的需求,为我们的短期和长期架构计划提供支持。”

Twilio 是一家领先的云通信平台,使开发者能够通过简单易用的 API 在其软件应用程序中创建、扩展和运行实时客户互动。Twilio 工程总监 Andrei Birjukov 表示:“我们的平台每年在语音、电子邮件、短信、彩信、FB MessengerWhatsApp 等渠道发送和接收超过 1050 亿条信息,我们需要一个能够处理如此大规模信息量的数据库,同时还要确保低延迟。Amazon MemoryDB for Redis 具有极高的可扩展性,每个集群可轻松扩展到一百多 TB。作为一个内存数据库,Amazon MemoryDB for Redis 提供了极高的性能,对我们全球平台的运营至关重要。”