主页 topics Redis 什么是 Redis?
探索 Redis 的功能以及将其用作企业数据库管理解决方案的好处。
蓝色半圆的插图
什么是 Redis?

Redis 代表 REmote DIctionary Server(链接位于 IBM 外部),是开源的内存 NoSQL 键/值存储库,主要用作应用缓存或快速响应数据库。 Redis 将数据存储在内存中,而不是硬盘或固态硬盘 (SSD) 中,因此提供无与伦比的速度、可靠性和性能。

当应用依赖于外部数据源时,这些数据源的延迟和吞吐量可能会造成性能瓶颈,特别是当流量增加或应用扩展时。 在这些情况下,提高性能的一种方法是在物理上更靠近应用的内存中存储和操作数据。 Redis 正是为了执行该任务而构建的:它将所有数据统统存储在内存中 — 提供最快的数据读写性能,并提供内置的复制能力,允许您将数据保存在距离用户更近的地方,以实现最低延迟。

其他值得注意的 Redis 特性包括支持多种数据结构、内置 Lua 脚本、多级别磁盘持久性和高可用性。

差异化能力

Redis 不同于作为辅助组件专门为提高应用性能而设计的“传统”NoSQL 数据存储库。 以下是 Redis 的一些差异化功能:

Redis 缓存会话

同样,不同于 MongoDBPostgreSQL 等 NoSQL 数据库,Redis 将数据存储在服务器的主存储器中,而不是硬盘和固态硬盘上。 这将大幅缩短执行读写操作时的响应时间。 同时还有助于确保高可用性(与 Redis Sentinel 结合使用,见下文)以及服务和应用工作负载的可扩展性。

Redis 队列

Redis 可以对那些相比普通任务而言需要 Web 客户端花费更长时间来处理的任务进行排队。 多进程任务排队在当今基于 Web 的许多应用中都很常见,Redis 可以轻松实施使用 Python 编写的自动化进程,这些进程在请求/响应周期的后台运行。

Redis 数据类型

虽然从技术的角度来看,Redis 是一个键/值存储库,但它却是真正的数据结构服务器,支持多种数据类型和结构,包括:

  • 唯一且未排序的字符串元素

  • 二进制安全数据

  • 超级日志

  • 位数组

  • 哈希值

  • 列表

Redis 客户端处理

Redis 具有本机客户端集成能力,可帮助开发人员操作并与他们的数据交互。 目前在 Redis 客户端库中拥有超过 100 种不同的开源客户端,开发者可以轻松添加新的集成来支持额外的功能和编程语言。

特性

Redis 一些最重要或值得注意的特性包括:

Redis Sentinel

Redis Sentinel(链接位于 IBM 外部)是独立的分布式系统,可以帮助开发人员校准他们的实例,使其对客户端高度可用。 Sentinel 使用一系列监控进程、通知和自动故障转移工具,可在主从实例出现问题时通知用户,同时在必要时自动为应用重新配置新连接。

Redis Cluster

Redis Cluster(链接位于 IBM 外部)是 Redis 的分布式实现,可以自动在多个节点中分割数据集。 这支持更高的数据库部署性能和可扩展性,同时确保在节点子集无法与集群其他部分通信的情况下继续运作。

Redis Pub/Sub

由于 Redis 支持使用发布和订阅 (Pub/Sub) 命令(链接位于 IBM 外部),因此,用户可以跨越他们的全部应用和服务来设计高性能交谈和消息传递服务。 这包括能够使用列表数据结构来运行原子操作和阻塞功能。

Redis 持久性

Redis 使用持久性磁盘存储器(链接位于 IBM 外部),旨在应对进程中断和网络瓶颈。 Redis 可以通过定期拍摄数据快照,并在数据发生变化时追加更改,实现数据集持久化。 然后,可将 Redis 配置为按需或按既定周期自动生成这些数据库备份,以确保数据库的耐久性和完整性。

Redis 与 Memcached

Redis 和 Memcached 都是开源的内存数据存储库,但它们的优点和特性不同。 对于需要较少内存资源的简单应用来说,Memcached 通常是首选,但在以序列化形式存储数据时,它具有局限性。 Redis 对数据结构的使用,让其在处理大型数据集时可提供更强大的功能,并且在特定的应用场景中更能调优缓存内容,同时保持更高的效率。

Redis 与 MongoDB

Redis 是内存中的数据库存储库,MongoDB 则被称为磁盘上的文档存储库。 尽管这两个解决方案是为不同目的而构建的,但它们经常一起使用,以最大限度地提高 NoSQL 数据库的速度和效率。 由于具备缓存能力,Redis 可以非常快速地定位所需的数据,作为摄取缓冲区使 MongoDB 更高效,并能够近乎实时地管理更频繁的文档更新。 由于 MongoDB 具有存储大量数据的能力,而 Redis 则能够更迅速地处理数据,因此,这两者的结合使用,可以为各种用例提供强大的数据库管理解决方案。

用例

以下是企业可从 Redis 使用中获益的一些常见用例:

  • 实时分析:由于 Redis 可以在亚毫秒级延迟的情况下处理数据,因此非常适用于实时分析、在线广告活动和 AI 驱动的机器学习过程。

  • 基于位置的应用:Redis 通过提供地理空间索引、集合和操作来简化基于位置的应用和服务的开发。 使用排序集,Redis 能够消除耗时的位置数据搜索与排序工作,同时还使用智能地理哈希实现。

  • 数据库缓存:Redis 可以利用其内存数据存储功能来处理大量的实时数据,从而帮助支持响应迅捷的数据库结构。 Redis 的缓存功能可以减少数据库访问,这有助于减少所需的流量和实例数量。 通过使用 Redis 进行缓存,开发团队可以实现亚毫秒级延迟,从而显著提高应用吞吐量。 由于 Redis 的缓存层可以快速且经济地扩展,因此,企业能够在降低总体支出的同时开发这些响应迅捷的应用。
安装 Redis

开始使用 Redis 是一个相当无缝的过程,尤其是在使用 Redis Desktop Manager (RDM)(链接位于 IBM 外部)的情况下。 此外,由于 Redis 和 RDM 都是开源项目,因此,活跃的开发社区一直在努力提高它们的运行效率,并不断发展相关支持工具和集成。

有关安装和设置 Redis 的更多信息,请参阅社区中的设置说明(链接位于 IBM 外部)。

相关解决方案
IBM Cloud® Databases for Redis

为现代应用堆栈设计的开源、内存中键值存储

探索 IBM Cloud® Databases for Redis
如何在 IBM Cloud 上选择数据库

了解如何为云原生应用选择正确的数据库

什么是 NoSQL 数据库?

您可以在此找到关于 NoSQL 的一切须知内容;NoSQL 是一种数据库设计,它提供比传统数据库更高的灵活性。

什么是 MongoDB?

本指南探讨了企业数据库管理解决方案中包含的 MongoDB 的特性和优势。

采取下一步行动

IBM Cloud® Databases for Redis 是用于将 Redis 强大的内存缓存功能实施到现代应用堆栈中的全托管解决方案。 Databases for Redis 是企业就绪解决方案,支持您单独扩展磁盘和 RAM,从而获得所需的灵活性来满足最具创新性应用不断增长的资源需求。

了解有关 IBM Cloud® Databases for Redis 的更多信息