javascript - 在 Nodejs 与 Redis 哈希中使用全局对象

标签 javascript node.js performance redis heap-memory

我打算在服务器上使用 nodejs - 12 核,64 GB 内存。

如果我有这样的对象-

obj= {x1: [user1_id, user2_id, user4_id, user89_id, user541_id],
      x2: [user55_id, user44_id, user3_id, user89_id, user132_id],
      .... }

问题:在什么时候将 obj 存储为 Redis 哈希而不是 Nodejs 中的全局对象才有意义? (在规模上,我预计会有大约 300,000 个键,每个键平均有 5 个元素)
(对象的持久性不是问题)

问题:Nodejs 进程允许的最大堆大小是多少?

最佳答案

以下是迁移到 Redis 的一些原因:

  1. 如果您想集群化您的 node.js 进程以利用多核来处理高负载。 node.js 中的全局变量不在集群进程之间共享,因此您需要由每个 node.js 集群可以访问的另一个进程 (redis) 管理数据。

  2. 如果您担心在 node.js 中使用大量内存。迁移到 Redis 会将数据使用的内存移出 node.js 进程。

  3. 如果你想要redis的一些数据管理或其他功能。

根据 this article ,您可以调高 node.js 允许的内存使用量(从默认内存上限 1.76GB 到 26GB)。

关于javascript - 在 Nodejs 与 Redis 哈希中使用全局对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40954309/

相关文章:

javascript - 无法将 appendChild 附加到从另一个框架创建的节点

javascript - Vue Ag-grid 一次隐藏/取消隐藏所有列

javascript - 如何大写并删除句子/字符串中的空格?

node.js - 如何判断示例中给定字符串使用的加密?

ruby - 这些 Array Initializations 中的哪个在 Ruby 中更好?

javascript - HTML5 : Apply transparency to Canvas after drawing through JavaScript

node.js - 如何从 Jasmine 获得更好的终端输出?

javascript - 请求管道的错误处理

mongodb - 在 MongoDB 中,一个大的 $​​or 搜索是否比多个单个搜索更快?

c# - 通过编写 C dll 来加速 C# 中的数学代码?