假设我有一个 Redis 的主从部署(1 个主,1 个从)和一个将管理 Publish-Subscribe 的客户端(webapp)。
- 我可以向奴隶发布消息吗?他们会被主人“看到”吗?
- 或者我应该只使用 Master 发布和 Slave 订阅命令?
我一直在环顾四周,但找不到答案。有谁知道?
假设我有一个 Redis 的主从部署(1 个主,1 个从)和一个将管理 Publish-Subscribe 的客户端(webapp)。
我一直在环顾四周,但找不到答案。有谁知道?
编辑:正如@jameshfisher 指出的那样,下面的链接是关于Redis Cluster
. @lionello 的评论似乎是正确的答案:
发布到从站不会传播到主站,反之亦然。
答案在集群规范文档中:
发布/订阅
在 Redis 集群中,客户端可以订阅每个节点,也可以发布到每个其他节点。集群将确保根据需要转发已发布的消息。当前的实现将简单地将每个发布的消息广播到所有其他节点,但在某些时候,这将使用布隆过滤器或其他算法进行优化。
对于您存储在 Redis 中的典型数据,您应该只写入主服务器。
来自http://redis.io/topics/replication:
...如果从站和主站将 [原文如此] 重新同步,或者如果从站重新启动,则 [对从站] 的写入将被丢弃...
事实上,从 v2.6 开始,您可以将 slave 置于slave-read-only
mode 以防止错误地将数据写入 slave。
该文档确实继续提到了将数据写入从属设备的潜在用例:
...通常会有一些不重要的临时数据可以存储到从站中。例如,客户端可能会获取有关从属实例中主控的可达性的信息来协调故障转移策略。