Node.js,将对象存储在内存中还是数据库中?
Node.js, store object in memory or database?
正在开发一个节点 js 应用程序,它从集中式数据库中读取 json 列表
列表 Object
大约 1.2mb(如果保存在 txt 文件中)
要求是,数据每 24 小时刷新一次,所以我为此保留了一个 cron 作业
现在,在获取数据后,我将其保存在我的服务器运行本地的数据库(couchbase)中
数据访问非常频繁,我每秒收到大约 1 或 2 个请求,几乎所有请求都需要 Object
将 Object
作为内存对象保存在节点 js 中还是保存在本地数据库中好?
两者的优缺点是什么?
Object
仅读取所有请求,仅由 cron 作业写入一次
这是一个高端系统,i7 四核,16gb 内存
- 这取决于您的硬件
- 如果这个对象是不可变的,根据请求,最好将它保存在内存中。如果没有 - 视情况而定。
- 在任何情况下,工作流都会打开与数据库的连接 - 获取数据 - return 结果 - 免费数据将比在内存中缓存消耗更多资源。
例如,在我们的项目中,我们处理高清图像,并将所有对象保存在内存中 - 原始格式为 3-7mb。测试表明,这比使用任何缓存系统(例如 redis 或 couch base)要高效得多。
我会保留最新版本作为内存对象,并存储它。这样,如果有任何崩溃,您就有了备份。但是,如果您编辑该文件,我只会将其保留为数据库对象。
每 2 秒访问一次该对象的数据库可能会很好,但 1.2MB 的内存并不算多,如果您能控制住它,您的服务器就不太可能 运行 出现问题。
与内存相比,数据库有点慢,但具有(很可能)线程安全的优势。如果您要编辑文档,您可能 运行 遇到内存对象的线程问题。
您了解应用程序和要求,您应该能够判断您是否需要线程安全的数据库,或者您是否需要保护服务器上的内存。如果您不知道,我们需要查看实际代码和用例来告诉您您可以做什么。
正在开发一个节点 js 应用程序,它从集中式数据库中读取 json 列表
列表 Object
大约 1.2mb(如果保存在 txt 文件中)
要求是,数据每 24 小时刷新一次,所以我为此保留了一个 cron 作业
现在,在获取数据后,我将其保存在我的服务器运行本地的数据库(couchbase)中
数据访问非常频繁,我每秒收到大约 1 或 2 个请求,几乎所有请求都需要 Object
将 Object
作为内存对象保存在节点 js 中还是保存在本地数据库中好?
两者的优缺点是什么?
Object
仅读取所有请求,仅由 cron 作业写入一次
这是一个高端系统,i7 四核,16gb 内存
- 这取决于您的硬件
- 如果这个对象是不可变的,根据请求,最好将它保存在内存中。如果没有 - 视情况而定。
- 在任何情况下,工作流都会打开与数据库的连接 - 获取数据 - return 结果 - 免费数据将比在内存中缓存消耗更多资源。
例如,在我们的项目中,我们处理高清图像,并将所有对象保存在内存中 - 原始格式为 3-7mb。测试表明,这比使用任何缓存系统(例如 redis 或 couch base)要高效得多。
我会保留最新版本作为内存对象,并存储它。这样,如果有任何崩溃,您就有了备份。但是,如果您编辑该文件,我只会将其保留为数据库对象。
每 2 秒访问一次该对象的数据库可能会很好,但 1.2MB 的内存并不算多,如果您能控制住它,您的服务器就不太可能 运行 出现问题。
与内存相比,数据库有点慢,但具有(很可能)线程安全的优势。如果您要编辑文档,您可能 运行 遇到内存对象的线程问题。
您了解应用程序和要求,您应该能够判断您是否需要线程安全的数据库,或者您是否需要保护服务器上的内存。如果您不知道,我们需要查看实际代码和用例来告诉您您可以做什么。