2011-06-28 174 views
15

我正在考虑Redis作为新项目体系结构的一部分。它将包含很多客户端(node.js连接)通过一个进程订阅特定的密钥,根据需要发布到这些密钥。Redis发布/订阅限制

我很好奇PUBLISH/SUBSCRIBE命令的限制以及如何减轻这些限制。一个明显的限制是使用Redis在机器上打开的文件描述符的数量,所以在某些时候我需要对多个Redis实例实施主从或一致哈希。

有没有人有任何解决方案关于如何用Redis的PubSub扩展这个架构?

回答

22

Redis PubSub非常容易扩展,因为主/从复制会自动发布到所有从属设备。

最简单的方法是通过例如HAProxy对node.js的连接进行负载平衡,在每台Web服务器上运行一个Redis从服务器,以便与发布消息的单个主服务器进行同步。

我不能给你确切的数字,因为这很大程度上取决于底层系统,但是这应该非常好地扩展。而且您不需要管理客户端以及他们手动连接的服务器。您显然需要某种方式来处理会话状态,因此您可能需要这样做,但在负载平衡器中执行操作要比在应用程序中执行起来容易得多。