如果两个不同的客户端在同一个 channel 上进行 PUBLISH,我是否可以假定通知订阅者的顺序将得到遵守?
- 所有订阅者收到第一个 PUBLISH 消息
- 然后所有 sunbscribers 收到第二个?
由于 redis 是单线程的,所以它应该是单线程的,但我想确保它不会并行处理两个 PUBLISH。
最佳答案
是的,PUBLISH
是一个同步命令。在将消息推送给所有订阅者之前,它不会返回。并且不同的PUBLISH
命令在Redis请求队列中自然序列化。
Time complexity: O(N+M) where N is the number of clients subscribed to the receiving channel and M is the total number of subscribed patterns (by any client).
关于Redis PUBLISH 和消息顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12969648/