Redis的发布和订阅(二)

1. 发布和订阅介绍

Redis发布和订阅(pub/sub)是一种消息通信模式:发布者(pub)发布消息,订阅者(sub)接收消息。Redis客户端可以订阅任意数量的频道

2. Redis的发布和订阅

  1. 客户段可以订阅频道

  2. 当发布者给频道发布消息后,消息就会发送给订阅的客户端

3. 发布和订阅的命令行实现

  1. 打开客户端订阅channel1

    订阅命令: subscribe channel1 channel2 ...,可以订阅多个

    1
    2
    3
    4
    5
    127.0.0.1:6379> subscribe channel1
    Reading messages... (press Ctrl-C to quit)
    1) "subscribe"
    2) "channel1"
    3) (integer) 1
  2. 打开另一个客户端,给channel1发布消息helloworld

    发布消息命令:publish channel 消息,channel表示发布的频道,返回值表示有几个订阅者

    1
    2
    127.0.0.1:6379> publish channel1 helloworld
    (integer) 1
  3. 切换到订阅者窗口,可以看到收到的消息

4. 发布和订阅常用命令

  1. subscribe:订阅一个或者多个频道

    1
    subscribe channel [channel ...]
  2. publish:发布消息到指定的频道

    1
    publish channel message

    将消息message发送到频道channel,返回的是订阅者的数量

  3. psubscribe:订阅一个或多个符合给定模式的频道

    1
    psubscribe pattern [pattern...]

    订阅一个或多个符合给定模式的频道,每个模式以 * 作为匹配符,比如:it*匹配it开头的频道(it.news, it.blog….)

    示例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    127.0.0.1:6379> psubscribe news.* blog.*
    Reading messages... (press Ctrl-C to quit)
    1) "psubscribe" # 返回值的类型:显示订阅成功
    2) "news.*" # 订阅的模式
    3) (integer) 1 # 目前已订阅的模式的数量

    1) "psubscribe"
    2) "blog.*"
    3) (integer) 2