Redis

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

Redis 是什么?

Redis 是一款快速的开源内存中键值数据存储,可用作数据库、缓存、消息代理和队列。它可实现亚毫秒级响应时间,每秒处理数百万个请求,为游戏、广告技术、金融服务、医疗保健和物联网中的实时应用程序提供支持。Redis 是缓存、会话管理、实时分析、地理空间、聊天/消息收发、媒体流和游戏排行榜的常见选择。

Redis 如何运作?

数据库将数据存储在磁盘或 SSD 上,而所有 Redis 数据驻留在内存中。由于无需访问磁盘,Redis 等内存数据存储避免了查找时间延迟,并且可以在几微秒内访问数据。Redis 具备通用的数据结构、高可用性、地理空间、磁盘持久性和群集支持,让构建实时 Internet 规模的应用程序变得更简单。

Amazon ElastiCache for Redis

完全托管的 Redis 符合加密、在线群集大小调整、高可用性和合规要求。了解更多 >>

Redis 的优势

内存中数据存储

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

灵活的数据结构

与提供有限数据结构的简单键值数据存储不同,Redis 可提供各种各样的数据结构,以满足您的应用程序需求。Redis 数据类型包括:

  • 字符串 – 最大 512MB 的文本或二进制数据
  • 列表 – 按添加顺序列出的字符串集合
  • 集 – 未排序的字符串集合,支持与其他集类型的相交、联合以及差运算
  • 排序集 – 根据值排序的集
  • 哈希 – 同于存储字段和值的列表
  • 地理空间 – 用于标记存储位置坐标
  • 位图 – 提供位级操作

简单性和易用性

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

复制和持久性

Redis 采用的是主副本架构,并支持异步复制,用户执行此类复制时可以将数据复制到多个副本服务器。它能够提供更出色的读取性能(因为请求可以在多个服务器间进行拆分)和恢复功能(主服务器发生中断时)。为了实现持久性,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 提供 Amazon ElastiCache for Redis 这项完全托管的 Redis 服务,您可以通过 AWS 免费套餐免费试用。Amazon ElastiCache for Redis 让用户能够在云中轻松设置、操作和扩展 Redis 部署。借助 Amazon ElastiCache,您可以在几分钟内完成 Internet 规模的 Redis 部署,不仅经济实惠,而且可以调节硬件容量的大小。
开始免费使用 Amazon ElastiCache for Redis 只需三个简单的步骤:
了解 Amazon ElastiCache for Redis

通过简单教程进行学习

了解如何 创建 Redis 群集
开始使用适用于 Redis 的ElastiCache

开始构建

借助 用户指南开始构建。