3

如果两个不同的客户在同一个频道上进行发布,我可以假设通知订阅者的顺序会得到尊重吗?

  • 所有订阅者都会收到第一个 PUBLISH 消息
  • 那么所有的防晒者都会收到第二个?

由于 redis 应该是单线程的,但我想确保它不会同时处理两个 PUBLISH。

4

1 回答 1

4

是的,PUBLISH是同步命令。在将消息推送给所有订阅者之前,它不会返回。而不同PUBLISH的命令自然会在 Redis 请求队列中序列化。

时间复杂度:O(N+M),其中 N 是订阅接收通道的客户端数量,M 是订阅模式的总数(任何客户端)。

于 2012-10-19T07:48:58.153 回答