【问题标题】:Master-Slave and Publish-Subscribe connections主从和发布订阅连接
【发布时间】:2013-03-06 21:14:18
【问题描述】:

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

  • 我可以向从站发布消息吗?它们会被主站“看到”吗?
  • 或者我应该只使用 Master 来发布和 Slave 来订阅命令?

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

【问题讨论】:

    标签: redis publish-subscribe


    【解决方案1】:

    编辑:正如@jameshfisher 指出的,下面的链接是关于Redis Cluster 的。 @lionello 的评论似乎是正确答案:

    发布到从站不会传播到主站,反之亦然。

    答案在 cluster-spec 文档中:

    发布/订阅

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

    【讨论】:

    • 在 AWS 的常规主副本设置中,我无法让在副本上发布的消息显示在订阅主副本的客户端上,但反之亦然:订阅副本,发布在小学。
    • Redis Cluster 与 Redis master/slave 不同。
    • 对!更新了答案。
    【解决方案2】:

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

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

    ...如果slave和master将[原文如此]重新同步,或者如果slave重新启动...,则[to slaves]写入将被丢弃...

    事实上,从 v2.6 开始,您可以将 slave 设置为slave-read-only 模式,这样可以防止错误地向 slave 写入数据。

    文档确实继续提到了将数据写入从属设备的潜在用例:

    ...通常有一些不重要的临时数据可以存储 变成奴隶。例如,客户可能会获取有关 从属实例中主机的可达性以协调故障转移 战略。

    【讨论】:

      猜你喜欢
      • 2016-12-14
      • 1970-01-01
      • 2017-05-07
      • 2020-04-11
      • 2016-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多