具有多个用户的 NodeJS/ExpressJS 服务器中的变量存储限制?

Variable storage limit in NodeJS/ExpressJS server with multiple users?

我想在节点服务器代码中的变量中存储一些临时数据(对象和数组)。 这些变量存储在套接字的客户端变量中,并在与客户端的连接丢失时被清除。 我的问题是,当有成百上千的用户连接到服务器时,这种方法的内存使用限制是多少?有什么好担心的吗?这种方法是否比每分钟从 Mongo 数据库中为每个用户多次获取数据更好? 关于系统性能,我真的很好奇

这真的取决于数据有多大。只需将估计的数据大小乘以同时连接的用户数,然后将其加倍(用于 JS 存储开销),看看它有多大。这并不是一个精确的计算,而是给你一个大概的数字来检查。

例如,如果您有 5k 数据乘以 10,000 个用户,则上述等式将为:

5120 x 10,000 x 2 = 102,400,000 bytes or 98MB

在正常情况下,您将拥有一台可用内存为 GB 的服务器。

Is it something to worry about?

因此,插入您自己的数据大小并与服务器中的典型空闲内存进行比较。在大多数情况下,这个例子会很好,因为 100MB 没什么大不了的,除非你 运行 在一些低内存配置中。

Is this method better than fetching the data multiple times a minute from a Mongo database for each user?

如果您有合适的内存并且没有像这样缓存数据的更新问题,那么像这样将数据缓存在内存中比不断查询 Mongo 更快。