json 用于存储和检索小对象的选项(node.js),是否需要数据库?

ajsxfq5m  于 2023-03-31  发布在  Node.js
关注(0)|答案(3)|浏览(160)

我正在构建我的第一个live node.js Web应用程序。它包含一个表单,可以接受有关我客户当前股票的数据。提交时,会生成一个对象并保存到当前股票的数组中。然后,该股票将永久显示在他们的网站上,直到条目被修改或删除。
在任何时候都不太可能存储超过20个对象,而且这些对象可能每周只更新一次。我不确定是否有必要使用MongoDB来存储这些对象,或者是否有更简单更合适的替代方案。也许对象可以存储到JSON文件中?或者这会对页面加载时间产生太大的影响?

xxb16uws

xxb16uws1#

你可以存储在JSON文件中,甚至可以存储在Redis之类的缓存中,但我仍然认为MongoDB是你最好的选择。
在JSON文件中存储内容是不可伸缩的,因此如果您最终存储的数据比最初计划的要多得多(这种情况经常发生)您可能会发现您的服务器硬盘驱动器上的存储空间不足。此外,如果您最终扩展并将应用程序置于负载均衡器之后,那么您将需要确保每个服务器上都有该JSON文件的匹配副本。此外,更新JSON文件时很容易遇到竞争条件。如果两个进程同时尝试更新文件,则可能会丢失数据。从技术上讲,JSON文件可以工作,但不建议使用。
存储在内存中(即)Redis也有类似的含义,即数据只在一台服务器上可用。而且数据不是持久性的,所以如果你的服务器出于任何原因重新启动,你会丢失存储在内存中的数据。
从所有意图和目的来看,MongoDB都是你最好的选择。

dfty9e19

dfty9e192#

如果你想使用更简单的方法,即JSON文件,使用nedb API,这也非常快。

tzxcd3kk

tzxcd3kk3#

唯一确定的方法是用负载测试来测试,但是当你在提供网页服务时,你可能会从文件系统中读取html和js文件,阅读一些json文件的额外负载应该不是问题。

相关问题