[英]Node.js, store object in memory or database?
我正在开发一个节点js应用程序,该应用程序从集中式数据库中读取json列表
列表Object
约为1.2mb(如果保存在txt文件中)
需求就像,数据要每24小时刷新一次,所以我为此保留了一项cron作业
现在,在获取数据之后,我将其保存到在我的服务器上本地运行的db(couchbase)中
数据访问非常频繁,我每秒获得大约1或2个请求,几乎所有请求都需要该Object
将该Object
保留为节点js中的内存对象还是将其保留在本地db中是好事吗?
两者的优缺点是什么?
Object
仅读取所有请求,仅由cron作业写入一次
这是一个高端系统,i7四核,16GB内存
例如,在我们的项目中,我们处理高清图像,并将所有对象保留在内存中-原始格式为3-7mb。 测试表明,这比使用任何缓存系统(例如redis或沙发底座)要有效得多。
我会将最新版本保留为内存对象,并存储它。 这样,如果发生任何崩溃,您将拥有一个备份。 但是,如果您编辑文件,我只会将其保留为数据库对象。
每2秒访问一次该对象的DB可能会正常工作,但是1.2MB的内存并不多,如果可以保留该内存,则服务器就不会遇到问题。
与内存相比,DB有点慢,但具有(很可能)是线程安全的优点。 如果要编辑文档,则可能会遇到内存对象的线程问题。
在了解了应用程序和要求之后,您应该能够知道是否需要线程安全的数据库,或者是否需要保护服务器上的内存。 如果您不知道,我们需要查看实际的代码和用例,以告诉您您可以做的最好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.