【问题标题】:How to cache frequently used data in mongodb while using along with nodejs如何在与nodejs一起使用时缓存mongodb中的常用数据
【发布时间】:2021-07-31 17:47:46
【问题描述】:

我正在使用 node js 和 mongo db。我需要一些与缓存相关的帮助。我有某些数据,例如每 15 分钟更新一次的热门帖子。但是对于给定的时间段实例,所有对趋势帖子数据进行 api 调用的用户都会得到相同的响应。因此,有什么方法可以从 db 中保存缓存数据并定期更新 15 分钟。

注意:我怀疑将 json 格式的数据存储在服务器的文件中是否会有所帮助?它是否容易受到攻击或恶意使用?这些数据也包含一些机密信息。所以我想将它存储在文件中不是一个好主意。那么还有其他方法吗???

【问题讨论】:

  • 我觉得还是用Redis比较好

标签: node.js mongodb express caching node-modules


【解决方案1】:

正如 Kedar 所提到的,您可以在这里使用某种类型的分布式缓存,例如 Redis。

有像mongodb-redis-cache这样的NPM模块

(https://www.npmjs.com/package/mongodb-redis-cache)

它们的语法非常简单,只需将其附加到选择中即可。 (不过,它确实需要一个 Redis 服务器,如果您不熟悉 Redis 或设置一个,我会看一个更托管的解决方案,然后像 Digital Ocean 等)

这里的想法是,对 Mongo 的每次调用都会首先检查 redis 中是否存在“缓存”键/值,如果没有则运行查询,否则它将直接从 Redis 中提取。

【讨论】:

  • 我有一个使用redis进行缓存的想法。我应该为此创建一个redis数据库吗?如果我需要这样做,我应该使用什么协议来创建 redis 或 memcached?
  • 您可以托管自己的 redis 服务器,只需将其安装在服务器上并打开它以连接或使用托管服务来执行此操作(数字海洋有一个托管实例以及许多其他实例,可能会更简单)一旦你有了它,你只需使用 redis npm 并使用语法连接到它,然后对于缓存,你可以使用类似“apicache”模块的东西作为请求中的中间件。它将负责插入和过期等
猜你喜欢
  • 2014-11-09
  • 1970-01-01
  • 2021-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-21
  • 2021-01-02
  • 2018-11-12
相关资源
最近更新 更多