在Nodejs vs redis Hash中使用全局对象



i打算在服务器上使用nodej -12核,64 GB RAM。

如果我有这样的对象 -

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 Hash而不是在Nodejs中的全局对象中,在什么时候有意义?(从大致上,我预计将拥有约300,000个键,每个键平均每个5个要素)
(OBJ的持久性不是问题)

问题:作为nodejs进程的最大堆大小允许?

这是搬到redis的一些原因:

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

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

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

根据本文,您可以拨打node.js的允许内存使用率(从默认的1.76GB的默认存储器上限到26GB)。

最新更新