Node.js应用程序环境中的redis

Node.js应用程序环境中的redis,node.js,redis,Node.js,Redis,我正在构建一个应用程序,其中有几个Node.js实例作为后端(http服务器、套接字服务器和几个域服务器池)。现在我试图介绍几个通信和配置方面,我想知道redis是否能提供一个合适的解决方案 因此,我会将其用于以下目的: 共享运行时查找表的实现。它是一个由数百条相对简单的记录组成的表,由两个节点实例访问和操作 消息队列的实现。每个域服务器从http服务器接收命令,并应按顺序执行这些命令。域服务器应该能够侦听redis事件,并在其arival上执行每个新命令 套接字服务器还有一个regis消息队

我正在构建一个应用程序,其中有几个Node.js实例作为后端(http服务器、套接字服务器和几个域服务器池)。现在我试图介绍几个通信和配置方面,我想知道redis是否能提供一个合适的解决方案

因此,我会将其用于以下目的:

  • 共享运行时查找表的实现。它是一个由数百条相对简单的记录组成的表,由两个节点实例访问和操作
  • 消息队列的实现。每个域服务器从http服务器接收命令,并应按顺序执行这些命令。域服务器应该能够侦听redis事件,并在其arival上执行每个新命令 套接字服务器还有一个regis消息队列并侦听其事件,以便将通知推送到连接的客户端
对于这样的目的,redis“太重”了吗?

它提供了所有需要的功能吗?


我可以使用套接字在文件和/或内存以及队列中实现查找。但是,使用redis可能会使代码更干净,解决方案更健壮。

相反,redis绝对不是一个沉重的解决方案。 它很小,速度非常快(使用管道时),易于部署。我认为它是一种轻溶液,一种可以解决许多问题的瑞士刀。


如果您不希望消息传递有任何保证,那么基于Redis的消息队列就可以了。也就是说,基于Redis的队列不能保证客户端已经收到消息。如果这是你的应用程序的问题,你应该考虑使用一个更重的解决方案,比如或./p>什么意思“不能保证你的客户已经收到消息”?如果是UDP或其他异步消息传递,那么这只是理论上的。实际上,在单机上,甚至在网络中,它不应该失败,对吗?这里有更详细的响应: