【发布时间】:2019-08-15 11:38:39
【问题描述】:
我正在学习如何使用 socket.io 和 nodejs。在this answer 中,他们解释了如何将在线用户存储在 nodejs 中的数组中。这是在不将它们存储在数据库中的情况下完成的。这有多可靠?
- 存储在服务器中的数据是否可靠,数据是否始终保持原样?
- 是否建议将数据存储在服务器中?我正在考虑一个有数百万用户的场景。
- 即使应用程序从不同位置提供服务,是否始终只有一个服务器实例在运行?如果不是,将数据存储在服务器中会导致不同服务器实例之间的不一致吗?
【问题讨论】:
-
我认为答案旨在用作一个示例,它只是展示了如何进行连接。它不建议始终将内容存储在数组中 - 只是添加数据库会使示例过于复杂而几乎没有好处。
-
@VLAZ 明确一点,在生产中应该将数据存储在数据库中?
-
程序中的所有变量,包括数组、对象和字符串都存储在 RAM 中。当您的程序退出时,数据不会保存在任何地方(更不用说当您关闭计算机时)。您需要通过某些数据库服务器将长期数据存储在磁盘上,或者存储到将磁盘上的文件视为数据库的文件或库(例如 SQLite)
-
是的,简而言之“不要将数据存储在内存中”。尽管从那里这可能会增长和扭曲 - 数据库绝对是一种选择,但您可以将数据写入文件并在机器关闭时仍然拥有它的持久副本。此外,您实际上可以拥有一个系统,该系统在内存中执行故事数据以提高访问速度。然而,这些系统几乎总是将数据的副本保存到一些持久性存储(例如数据库)中。尽管如此,记忆单独还不够好。您已经谈到了原因,但最简单的原因是关闭服务器再打开会擦除数据。
标签: node.js express server data-storage