正在开发一个节点js应用程序,它从集中式数据库中读取一个json列表
列表Object
大约为1.2mb(如果保存在txt文件中)
要求就好,数据每24小时刷新一次,所以我保留了一份cron工作
现在,在获取数据之后,我将其保存到我的服务器本地运行的db(couchbase)
数据访问非常频繁,每秒大约需要1或2个请求,几乎所有需要Object
将Object
保留为节点js中的内存对象或将其保留在本地数据库中是不是很好?
两者的优点和缺点是什么?
Object
仅读取所有请求,仅由cron作业写入
这是一个高端系统,i7四核,16GB内存
答案 0 :(得分:2)
例如,在我们的项目中,我们处理高清图像,并将所有对象保存在内存中 - 原始格式为3-7mb。测试表明,这比使用任何缓存系统(如redis或沙发基座)更有效。
答案 1 :(得分:1)
我会将最新版本保留为内存对象,并将其存储起来。这样,如果发生任何崩溃,你就有备份。但是,如果您编辑该文件,我只会将其保留为数据库对象。
每2秒访问该对象的数据库可能会正常工作,但1.2MB的内存不是那么多,如果你可以保留它,那么你的服务器不会遇到问题。
与内存相比,DB有点慢,但是(最有可能)具有线程安全的优势。如果要编辑文档,可能会遇到内存对象的线程问题。
您知道应用程序和要求,您应该能够判断您是否需要线程安全数据库,或者是否需要保护服务器上的内存。如果您不知道,我们需要查看实际的代码和用例,告诉您哪些方法可以做得最好。