为什么redis slave中的PUBLISH命令不会导致错误?

时间:2015-12-12 10:08:46

标签: redis publish-subscribe

我有一个redis主从设置,从设备的配置设置为slave_read_only:1,但是当我在从属节点上输入PUBLISH命令时它不会失败。我希望有一个错误,但它只是接受命令而没有其他事情发生。消息也不会传播到主服务器。

问题是,为什么?我错误配置了redis吗?这是一个功能吗?为了什么目的?或者它只是一个错误?

在发生自动故障转移的设置中出现问题。主设备可以成为从设备,该从设备的客户端可以发布消息而不会意识到它不再是主设备。如果redis节点仍然是主节点,是否必须在每条消息发送之前进行检查?

我使用redis 3.0.5

1 个答案:

答案 0 :(得分:2)

您没有错误配置 - 这是定义的行为,因为PUBLISH不被视为写命令。

另请注意,当复制已发布的事件时,从主服务器复制到从服务器(下游,像往常一样),因此,如果您仅向从服务器发布连接到它或其从服务器并订阅相关通道的客户端将得到消息。