Master-Slave和Publish-Subscribe连接

时间:2013-03-06 21:14:19

标签: redis publish-subscribe

假设我有一个主从部署Redis(1个主服务器,1个服务器)和一个客户端(webapp)来管理发布 - 订阅。

  • 我可以将消息发布到从属设备吗?它们会被主人“看到”吗?
  • 或者我应该只使用Master for Publish和Slave for Subscribe命令?

我一直在四处寻找,但找不到答案。有人知道吗?

2 个答案:

答案 0 :(得分:0)

编辑:正如@jameshfisher所指出的,以下链接与Redis Cluster有关。来自@lionello的评论似乎是正确答案:

  

发布到从属设备不会传播到主服务器,只能反过来。

答案在 cluster-spec 文档:

  

发布/订阅

     

在Redis群集中,客户端可以订阅每个节点,也可以发布到每个其他节点。群集将确保根据需要转发已发布的消息。   当前的实现只会将每个已发布的消息广播到所有其他节点,但在某些时候,这将使用Bloom过滤器或其他算法进行优化。

答案 1 :(得分:-1)

对于存储在Redis中的典型数据,您应该只写入主数据。

来自http://redis.io/topics/replication

  

...如果从站和主站将[sic]重新同步,或者如果从站重新启动,则[slaves]写入将被丢弃...

实际上,从v2.6开始,你可以将从属设置为slave-read-only模式,这样可以防止将数据写入从设备的错误。

文档继续提到将数据写入从属的潜在用例:

  

...通常存在可以存储的不重要的短暂数据   成为奴隶。例如,客户可能会获取有关的信息   从属实例中主服务器的可达性,以协调故障转移   策略。