redis集群中pubsub消息的消息顺序是否有保证?
我们正在使用具有5个主节点的Redis群集(v3.2.8),每个主节点都连接了一个从属节点。我们注意到,在向一个特定主节点发布一个特定主节点并订阅该节点的从节点时,我们有时会以错误的顺序获取pubsub消息。
我在redis.io上的 cluster 和redis-github repo上找不到与 pubsub消息顺序相关的任何声明。
答案 0 :(得分:0)
首先,如果你正在使用PUBLISH,那么它就是阻塞并且仅在消息传递后返回,所以是的,订单是有保证的。
我看到有两个有问题的案例:流水线和客户端断开连接。
当客户端使用流水线发送命令时,服务器将被强制使用内存对回复进行排队。
因此,如果使用队列,则应保证顺序。
我在文档中找不到它,但如果在发布消息时没有连接或订阅客户端,那么它将不会收到任何内容。所以在这种情况下,没有保证。
如果您需要保留邮件,则应使用列表。