Node.js 如何在多个NodeJ实例中共享一个对象?

Node.js 如何在多个NodeJ实例中共享一个对象?,node.js,postgresql,redis,riak,Node.js,Postgresql,Redis,Riak,我有一个功能,用户发布包含少量用户ID和一些与这些用户ID相关的数据的数据,我将其保存到postgresql数据库中。我想把这个返回的用户ID保存在某个对象中 我只想检查此对象中是否存在userid,然后只调用数据库。此检查非常频繁,因此我不能每次都点击数据库来检查该userid是否存在任何数据 问题是,我有多个nodejs实例运行在不同的服务器上,所以我怎么能有一个公共对象呢 我知道我可以使用redis/riak在服务器上存储键值,但我不想仅仅为了一个案例而增加复杂性/学习。(我以前从未使用过

我有一个功能,用户发布包含少量用户ID和一些与这些用户ID相关的数据的数据,我将其保存到postgresql数据库中。我想把这个返回的用户ID保存在某个对象中

我只想检查此对象中是否存在userid,然后只调用数据库。此检查非常频繁,因此我不能每次都点击数据库来检查该userid是否存在任何数据

问题是,我有多个nodejs实例运行在不同的服务器上,所以我怎么能有一个公共对象呢

我知道我可以使用redis/riak在服务器上存储键值,但我不想仅仅为了一个案例而增加复杂性/学习。(我以前从未使用过redis/riak。)


有什么建议吗?

如果您的数据位于不同服务器上的不同node.js进程中,那么唯一的选择就是使用网络跨服务器与一些常见服务器进行通信,以获取价值。有很多不同的方法可以做到这一点

  • 将该值放入数据库,并始终从公共数据库读取该值
  • 将一个node.js实例指定为主节点,并让所有其他node.js实例在需要时询问主节点上的值
  • 使用网络将值同步到每个node.js进程,以便每个node.js实例在其自己的进程中始终具有当前值
  • 使用共享文件系统(有点像穷人的数据库)

  • 因为您已经有了一个数据库,所以您可能只想将其存储在已有的数据库中并从中查询,而不是为了这一次使用而引入另一个带有redis的数据存储。如果可能,您可以让每个进程在一段时间间隔内缓存该值,以提高频繁请求的性能。

    您能回答这个问题吗