近年来,Redis已经成为Node.js应用堆栈中常见的现象。虽然它最流行的用例是缓存,Redis还有很多其他用例,你可以利用它的闪存数据库的快得惊人。
在这个教程中,我们将给你一个快速介绍Redis。我们还将使用Redis为节点应用程序创建一个简单的缓存,看看它是如何影响其性能的。
什么是Redis
Redis是一个开源的(BSD许可),内存中的数据结构存储用作数据库、缓存和消息代理。
您可以将其看作是一个非sql数据库,它将数据以键-值对的形式存储在系统内存中。如果需要,Redis也支持磁盘持久数据存储。
Redis支持存储多种数据结构和数据类型,包括字符串、列表、散列、集合和排序集合。受支持的数据结构为Redis提供了多种用例的通用性。
Redis是最好的情况,在最短的时间需要数据检索和交付给客户端。
Redis用例
Redis做缓存
Redis最流行的使用案例之一是缓存。
缓存是什么
缓存是在缓存中存储数据副本的过程,以允许应用程序更快地访问和检索数据。缓存的目标是比数据库或远程服务器更好地加速数据访问操作。对于昂贵的(及时的)操作尤其如此。
作为一个后端开发人员,我们的任务是尽快完成客户的请求。有时候,查询需要一些操作,比如从数据库中检索数据、执行计算、从其他服务中检索额外数据等等,这些操作会降低我们的性能。
这正是缓存的优势所在,因为我们可以一次性处理数据,将其存储在缓存中,然后稍后直接从缓存中检索数据,而无需执行所有那些昂贵的操作。然后,我们会定期更新缓存,以便用户可以看到更新的信息。
缓存Redis
由于Redis是一个内存数据库,它的数据访问操作比任何其他磁盘绑定数据库可以提供的更快。这使得Redis成为缓存的最佳选择。它的键-值数据存储是另一个优点,因为它使数据存储和检索更加简单。
在本教程中,我们将看到如何使用Redis和Node.js进行缓存。
Redis实时分析
Redis提供亚毫秒长的数据处理操作。这使得Redis成为依赖于实时数据分析的应用程序的完美候选。
例如,在实施实时欺诈检测服务时,你可以使用Redis来存储用户身份和他们的交易细节。Redis甚至提供了一个ai支持的更快的交易评分系统和更快的统计模型来更好地执行这个用例。
实时分析的其他用例包括实时库存管理系统和游戏排行榜。
Redis会话管理
如果您的应用程序使用会话来跟踪经过身份验证的用户并管理用户特定的数据,那么Redis非常适合用作会话存储。使用Redis可以显著提高系统的性能,同时使其更容易处理用户的数据,包括凭证,最近的活动,甚至一个类似购物车的系统。
Redis作为一个队列
你可以使用Redis来对需要很长时间才能完成的应用程序任务进行排队。您可以实现FIDO(先入先出)队列或创建延迟队列,以将任务实现延迟到预定的时间。
缓存节点和Redis
现在,让我们从本教程的主要重点开始:在NodeJS应用程序中使用Redis进行缓存。
缓存Redis的过程相当简单。当我们收到用户对启用缓存的路由的请求时,我们首先检查所请求的数据是否已经存储在缓存中。如果是,我们可以快速检索数据从Redis和发送响应。
但是,如果数据没有存储在缓存中,我们称之为缓存缺失,我们必须首先从数据库或外部API检索数据并将其发送给客户机。我们还确保将检索到的数据存储在缓存中,以便下次收到相同的请求时,可以更快地将缓存的数据发送给用户。
现在您已经清楚我们要做什么了,让我们开始实现。
安装Redis
如果你还没有,你需要安装Redis为本教程。
您可以下载二进制文件并使用以下命令轻松地编译它们。
wget