Redis PUBLISH 和消息顺序

标签 redis real-time

如果两个不同的客户端在同一个 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/

相关文章:

node.js - 如何启动新的nodejs进程

php-redis - 有没有办法在不序列化的情况下将 PHP 对象存储在 Redis 中?

node.js redis 异步查询

ruby-on-rails - 选择 Redis 键名和键数限制

google-analytics - 谷歌分析没有实时显示事件值(value)?

python - 使用 Python 和 websocket 创建实时聊天

ruby-on-rails - Rails 5 安全操作电缆与 redis

python - Redis中根据时间获取所有key

raspberry-pi - Raspberry 是实时操作系统吗?

multithreading - 寻找无锁的RT安全单读取器单写入器结构