角色

  • 发布者(publisher)
  • 订阅者(subscriber)
  • 频道(channl)

    模型

    image.png
    总结:

  • 发布者、订阅者可以是多个

  • 一个订阅者可订阅多个频道
  • 新的订阅者,无法获取到发布者以前发布的消息
  • 当一个发布者发布消息后,当前频道的所有订阅者都可接受到信息

    命令

  • 发布命令:publish channel message;返回值:订阅者数量

  • 订阅频道:subscribe channel [channel ...];订阅一个或多个频道,并且阻塞连接
  • 取消订阅:unsubscribe channel [channel ...]
  • 订阅模式的频道:psubscribe pattern...;如:psubscribe v* 可订阅 v 开头的频道

    与消息队列的区别

  • 消息队列:当发布消息后,只有一个订阅者抢到消息

  • Redis 本身无消息队列的命令;但可使用 List 方式实现消息队列