如何在多个nodejs实例中共享一个对象?

我有一个function,其中用户发布数据包含less数userid和一些数据相关的这些userid,我将它保存到postgresql数据库。 我想保存这个返回的userid在一些对象。

我只想检查用户标识是否存在于这个对象中,然后只调用数据库。 这个检查发生得非常频繁,所以我不能每次都检查数据库只是为了检查是否有任何数据目前的用户ID。

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

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

任何build议?

如果您的数据在不同的服务器上处于不同的node.js进程中,那么“唯一”选项是使用networking与服务器之间通过一些公用服务器进行通信以获取值。 有很多不同的方法来做到这一点。

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

既然你已经有了一个数据库,你可能只想把它存储在你已经拥有的数据库中,并从那里查询它,而不是引入另一个数据存储与redis只是为了这个用途。 如果可能,可以让每个进程在一段时间内caching该值,以提高频繁请求的性能。