使用Redis缓存MongoDB数据库

今天,性能是开发Web服务时需要评估的最重要的指标之一。 保持客户的参与对任何公司,尤其是初创公司都是至关重要的,因此,提高性能和减少页面加载时间非常重要。

当运行与数据库交互的Web服务器时,其操作可能会成为瓶颈。 这里的MongoDB也不例外,随着您的MongoDB数据库规模的扩大,事情真的会变慢。 如果数据库服务器与Web服务器分离,则此问题甚至会变得更糟。 在这样的系统中,与数据库的通信会导致很大的开销。

幸运的是,您可以使用一种称为缓存的方法来加快处理速度。 在本教程中,我们将介绍此方法,并了解如何使用它来增强Node.js Web服务的性能。

背景

缓存是一种旨在解决主要存储问题的策略,这意味着:存储越大,存储速度就越慢,反之亦然。 在计算机中,您的硬盘驱动器很大但相对较慢。 然后,您获得了速度更快但存储容量较小的RAM,最后是速度非常快但很小的CPU寄存器。 下图展示了内存问题:

记忆问题

缓存是将最近访问的数据存储在更快的存储系统中的组件。 每次请求该数据时,都可以(以某种可能性)将其从更快的内存中拉出。 缓存背后的基本假设是,最近读取的数据更有可能再次被读取。 因此,它们应该存储在更快的内存中,以便即使下一次读取也会更快。

为了更好地理解这个概念,请考虑一群坐在图书馆里的人。 图书馆本身代表着一个巨大的存储系统,但是很难在那里找到一些书籍。 在我们的想象中,图书馆是一个庞大而缓慢的存储机制。 假设这些人每当找到一本书时都阅读但不归还,因为他们宁愿将其放在桌子上。 他们之所以有这种行为,是因为他们确定很快就会再次需要它,并且将那本书放在更便于阅读的桌子上是有意义的。 在此示例中,库是主存储系统,而表是我们的缓存。

在本教程中,我们将构建一个称为“ fastLibrary”的Web服务。 在这里,我们将实现虚拟库缓存的概念。 MongoDB将成为主要的存储系统,我们将使用Redis构建缓存。 我们的Web服务器将与Express.js一起使用 。 如果您不熟悉这些技术中的任何一种,建议您在开始本教程之前加深这些主题。 为了我们的目的,建议您阅读一下SitePoint上发布的以下文章:

您可以在GitHub存储库中找到本教程的所有代码

基本系统

第一步,我们将构建一个基本的Web服务器,将数据存储在MongoDB中。 在此演示中,我们将其命名为“ fastLibrary”。 该服务器将具有两个基本操作:

  • POST /book :此端点将接收书名,作者和书的内容,并在数据库中创建书条目。
  • GET /book/:title :此端点将获得标题并返回其内容。 我们假设书名唯一地标识书籍(因此,不会有两本书具有相同的书名)。 当然,更好的选择是使用ID。 但是,为了简单起见,我们仅使用标题。

这是一个简单的库系统,但是稍后我们将添加更多高级功能。

现在,让我们创建应用程序所在的目录:

mkdir fastLibrary
cd fastLibrary

本教程假定您已安装No

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值