Redis 发布订阅

  • Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。

  • 可以实现 1:N 的消息队列。

  • 示例

    • 先开个redis 客户端,执行创建订阅频道名为 redisChat的命令

      1
      2
      3
      4
      5
      6
      redis 127.0.0.1:6379> SUBSCRIBE redisChat

      Reading messages... (press Ctrl-C to quit)
      1) "subscribe"
      2) "redisChat"
      3) (integer) 1
    • 再开个 redis 客户端,然后在同一个频道 redisChat 发布两次消息,订阅者就能接收到消息

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      redis 127.0.0.1:6379> PUBLISH redisChat "Redis is a great caching technique"

      (integer) 1

      redis 127.0.0.1:6379> PUBLISH redisChat "Learn redis by runoob.com"

      (integer) 1

      # 订阅者的客户端会显示如下消息
      1) "message"
      2) "redisChat"
      3) "Redis is a great caching technique"
      1) "message"
      2) "redisChat"
      3) "Learn redis by runoob.com"

缺点

  • 在消费者下线的情况下,生产的消息会丢失,得使用专业的消息队列如RocketMQ等。

参考