Redis

超快速的开源内存中数据存储,可用作数据库、缓存、消息代理和队列。

Redis 是一款开源的内存中数据存储,可实现亚毫秒级的响应时间,每秒处理数百万个请求,为实时应用程序提供支持。它可用作快速数据库、缓存、消息代理和队列。Redis 提供各种数据结构,包括字符串、列表、集、排序集、HashMap、Hyperloglogo 和位图。其他 Redis 功能包括高可用性、地理空间、Lua 脚本、事务、磁盘持久性和群集支持。Redis 经过 BSD 许可,采用优化的 C 语言代码编写,并支持多种开发语言和开源工具。Redis 是 REmote DIctionary Server 的首字母缩略词。

Redis 的主要使用案例包括数据库缓存、会话存储、流数据分析、地理空间分析、聊天/消息收发、媒体流实时数据存储,以及游戏排行榜。由于速度超快且易于使用,Redis 是游戏、广告技术、金融服务、医疗保健和 IoT 应用程序的热门选择,这些应用程序都需要最出色的性能、可扩展性和可用性。

 

Redis

为什么选择 Redis?

内存中数据存储

PostgreSQL、Cassandra、MongoDB 等数据库将大部分数据存储在磁盘或 SSD 上,而 Redis 则将所有数据存储在服务器的主内存上。在传统的基于磁盘的数据库中,大多数操作都需要往返磁盘。相比之下,Redis 之类的内存数据存储不会受到相同的损失,因此可以支持更多操作,并提供更快的响应速度。它可以提供超快的性能,读取或写入操作的平均时间不到一毫秒,并支持每秒数百万次的操作。

灵活的数据结构

与提供有限数据结构的简单键值数据存储不同,Redis 可提供各种各样的数据结构,以满足您的应用程序需求。Redis 数据类型包括:字符串,可以是最大 512MB 的文本或二进制数据;列表,按添加顺序列出的字符串集合;集,未排序的字符串集合,支持与其他集类型的相交、联合以及差运算;排序集,根据值排序的集;哈希,同于存储字段和值的列表;地理空间,用于标记存储位置坐标;位图,提供位级操作;以及 HyperLogLog,估算一个数据集中唯一项目的概率数据结构。

简单性和易用性

借助 Redis,您可以减少用于存储、访问和使用应用程序中的数据的代码行数,从而简化您的代码。例如,如果您的应用程序将数据存储在 HashMap 中,而您想将这些数据存储在数据存储中,那么只需使用 Redis 哈希数据结构来存储这些数据即可。至于没有哈希数据结构的数据存储中的相似任务,则需要许多行代码才能从一种格式转换为另一种格式。Redis 附带有原生数据结构和许多选项,以操作您的数据并与之交互。一百多个开源客户端可供 Redis 开发者使用。支持的语言包括 Java、Python、PHP、C、C++、C#、JavaScript、Node.js、Ruby、R、Go 等。

复制和持久性

Redis 采用的是主副本架构,并支持异步复制,用户执行此类复制时可以将数据复制到多个副本服务器。它能够提供更出色的读取性能 (因为请求可以在多个服务器间进行拆分) 和恢复功能 (主服务器发生中断时)。为了实现持久性,Redis 支持时间点备份 (将 Redis 数据集复制到磁盘),并支持创建仅附加文件 (AOF),以便在写入每个数据变更项时将其存储到磁盘。

高可用性和可扩展性

Redis 在单个主节点或群集拓扑中提供主副本架构。这让您可以构建高度可用的解决方案,从而提供一致的性能和可靠性。如果您需要调整群集大小,它还为您提供了多种扩展选项,包括纵向扩展和横向扩展、纵向缩减和纵向缩减,应有尽有。这让您的群集能够根据您的需求而发展。

可延展性

Redis 是一个开源项目,由充满活力的社区提供支持。Redis 是基于开放标准的,没有任何供应商或技术限制。它支持开放的数据格式,并拥有大量客户。此外,客户还可以使用 Redis 模块来扩展 Redis,以满足他们的特定需求。

缓存

Redis 是实施高度可用的内存中缓存的绝佳选择,它可以降低数据访问延迟、提高吞吐量,并可以减轻关系数据库和应用程序或 NoSQL 数据库和应用程序的负载。Redis 能够以亚毫秒级的响应时间为频繁请求的项目提供支持,并支持您轻松扩展以满足更高负载的需求,而无需增加昂贵的后端。使用 Redis 缓存的常见示例包括:数据库查询结果缓存、持久性会话缓存、网页缓存,以及缓存频繁使用的对象 (例如映像、文件和元数据) 等。

聊天、消息收发和队列

Redis 支持发布/订阅、模式匹配和各种数据结构,例如列表、排序集和哈希,以支持各种类型的数据内容。这使得 Redis 能够支持高性能的聊天室、实时评论流、社交媒体信息以及服务器内部通信。借助 Redis 列表数据结构,客户能够轻松实施轻量级队列。这类列表提供了原子操作和屏蔽功能,适用于各种需要可靠消息代理或循环表的应用程序。

游戏排行榜

Redis 是寻求构建实时排行榜的游戏开发者的热门选择。可直接使用 Redis 有序集数据结构,此结构实现了元素的唯一性,同时又可维护按元素分数排序的列表。创建实时排序表像用户分数在每次更改后进行更新一样简单。您也可以使用时间戳作为分数,使用有序集处理时间序列数据。

会话存储

作为具备高可用性和持久性的内存中数据存储,Redis 是应用程序开发人员用来为 Internet 级应用程序存储和管理会话数据的常见选择。Redis 可提供管理会话数据 (如用户配置文件、凭证、会话状态和用户特定的个性化) 所需的亚毫秒级延迟、可扩展性和弹性。

富媒体流

Redis 提供了一个快速的内存中数据存储,支持实时流使用案例。Redis 可存储用于用户配置文件和查看历史记录的元数据、数百万用户的身份验证信息/令牌,以及清单文件,以便 CDN 能够将视频一次性流式传输到数百万移动和桌面用户。

地理空间

Redis 提供专门构建的内存中数据结构和运算符,以便从规模和速度方面管理实时地理空间数据。由于包含可用于实时存储、处理和分析地理空间数据的 GEOADD、GEODIST、GEORADIUS 和 GEORADIUSBYMEMBER 等多个命令,Redis 可以轻松快速地进行地理空间分析。您可以使用 Redis 向应用程序添加基于位置的功能,如驾驶时间、驾驶距离和兴趣点。

机器学习

数据驱动的现代化应用程序需要机器学习来快速处理数据量、数据多样性和数据速率,并自动制定决策。对于游戏和金融服务中的欺诈检测、广告技术中的实时竞价,以及共享约会和共享单车中的配对等使用案例而言,能够在几十毫秒内处理实时数据并做出决策至关重要。Redis 为您提供了快速的内存中数据存储,可快速构建、培训和部署机器学习模型。

实时分析

Redis 可作为内存中数据存储,与流解决方案 (例如 Apache Kafka 和 Amazon Kinesis) 搭配使用,以亚毫秒级延迟提取、处理和分析实时数据。Redis 是实时分析使用案例的理想选择,例如社交媒体分析、广告投放、个性化和 IoT。

语言支持

Redis 支持大多数领先的编程语言和协议,包括:

Python

Java

PHP

AWS 上完全托管的 Redis

Amazon 提供完全托管的 Redis 服务:Amazon ElastiCache for Redis,您可使用 AWS 免费套餐免费试用。Amazon ElastiCache for Redis 让用户能够在云中轻松设置、操作和扩展 Redis 部署。借助 Amazon ElastiCache,您可以在几分钟内完成 Internet 级 Redis 部署,不仅经济实惠,而且可以调节硬件容量的大小。
开始免费使用 Amazon ElastiCache for Redis 只需三个简单的步骤:
Amazon ElastiCache for Redis

注册 Amazon ElastiCache for Redis

了解 Amazon ElastiCache for Redis

通过简单教程进行学习

开始使用 Amazon ElastiCache for Redis

开始使用 Amazon ElastiCache for Redis 进行构建

Amazon ElastiCache for Redis 用户指南的帮助下进行构建。