Node.js,将对象存储在内存中还是数据库中?

Ais*_*ngh 3 javascript memory-management database-performance node.js

正在开发一个 Node js 应用程序,它从集中式数据库读取 json 列表

列表Object约为 1.2mb(如果保存在 txt 文件中)

需求是,数据每 24 小时刷新一次,所以我为其保留了一个 cron 作业

现在,在获取数据后,我将其保存到在我的服务器上本地运行的数据库(couchbase)中

数据访问非常频繁,我每秒大约收到 1 或 2 个请求,几乎所有请求都需要该请求Object

Object将其保留为节点js中的内存对象还是将其保留在本地数据库中好?

两者的优点和缺点是什么?

Object只读取所有请求,仅由 cron 作业写入一次

这是一款高端系统,i7 四核,16GB 内存

Naz*_*nko 5

  1. 这取决于你的硬件
  2. 如果这个对象对于每个请求都是不可变的,最好将其保留在内存中。如果没有 - 取决于。
  3. 在任何情况下,工作流打开与数据库的连接 - 获取数据 - 返回结果 - 释放数据将比内存中的缓存消耗更多的资源。

例如,在我们的项目中,我们处理高清图像,并将所有对象保存在内存中 - 原始格式为 3-7mb。测试表明,这比使用任何缓存系统(例如 redis 或 couch base)要高效得多。