Redis PUBLISH/SUBSCRIBE 限制

Posted

技术标签:

【中文标题】Redis PUBLISH/SUBSCRIBE 限制【英文标题】:Redis PUBLISH/SUBSCRIBE limits 【发布时间】:2011-09-24 14:42:53 【问题描述】:

我正在考虑将 Redis 用于新项目架构的一部分。它将由许多客户端(node.js 连接)组成,订阅特定键,一个进程根据需要发布这些键。

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

谁有关于如何使用 Redis 的 PubSub 扩展此架构的任何解决方案?

【问题讨论】:

【参考方案1】:

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

最简单的方法是使用例如 HAProxy 对与 node.js 的连接进行负载平衡,在每个网络服务器上运行一个 Redis 从属服务器,该服务器与发布消息的单个主服务器同步。

我不能给你确切的数字,因为这很大程度上取决于底层系统,但这应该可以很好地扩展。而且您不需要手动管理客户端以及它们连接到的服务器。您显然需要某种方法来处理会话状态,因此无论如何您都可能需要这样做,但在负载均衡器中比在应用程序中更容易做到这一点。

【讨论】:

以上是关于Redis PUBLISH/SUBSCRIBE 限制的主要内容,如果未能解决你的问题,请参考以下文章

就publish/subscribe功能看redis集群模式下的队列技术

如何使用 redis PUBLISH/SUBSCRIBE 和 nodejs 在数据值更改时通知客户端?

如何使用 redis PUBLISH/SUBSCRIBE 和 nodejs 在数据值更改时通知客户端?

php redis pub/sub(Publish/Subscribe,发布/订阅的信息系统)之基本使用

redis的订阅与发布在java中的应用

redis发布订阅功能介绍