在这个link上,它说“当前的实现只会将所有发布消息广播到所有其他节点”,并补充说它将来会得到改进。
对于当前的实施:如果丢失消息并不重要;现在使用redis for pub / sub是否有意义?看起来一个实例更好地阻止广播流量。因为旁边写;读取也应该被推广到其他节点! (这样客户端就不会被通知两次。)
我错过了什么吗?
答案 0 :(得分:5)
不,我认为你没有错过任何一点。 Redis Cluster是一项正在进行的工作,其中包括规范。关于pub / sub的部分相当简单,可能会有所改进。
在Salvatore的提案中,客户是在单个实例(而不是所有实例)上订阅的,因此当将发布广播到所有实例时,客户端只会被通知一次。如果Redis实例已关闭,则客户端可以在群集的其中一个幸存节点(任何其他节点)上进行订阅。
另一种可能性是选择群集的一个节点作为唯一的发布/订阅节点,以便客户端只能在此节点上发布和订阅。但是,这种方式更难以支持发布/订阅服务的高可用性。