Redis的发布于订阅功能可以让多个客户端通过广播的方式,将消息同时发送至多个客户端,并且发送消息的客户端无需知道接收消息的客户端的具体信息。在Redis中,客户端可以订阅频道(chanenl)来接收或发送该channel的消息,我们把订阅channel的客户端称为订阅者(subscriber),发送消息的客户端称为发送者(pushlisher)。一个channel可以有多个订阅者,一个订阅者也可以订阅多个频道,客户端还可以通过向频道发送消息的方式,将消息发送给频道的所有订阅者。除了订阅频道外,客户端还可以通过订阅模式来接收消息,每当发布者向某个频道发送消息时,不仅频道的订阅者会接收到消息,与频道匹配的所有模式的订阅者也会接收到消息。

    命令 描述
    subscribe channel [channel…] 订阅一个或多个频道,channel为频道的名称,执行subscribe命令会返回一条订阅信息,消息的第一个元素是”subscribe”,它表示这条信息有subscribe命令引发的订阅消息,而不是普通客户端发送的频道消息。第二个元素是被订阅频道的名称。第三个元素是数字1,表示客户端目前订阅了1个频道。当订阅者接收消息时订阅信息会发生变化,消息的第一个元素变为”message”表示是客户端发送的频道消息,第二个元素表示消息的来源频道,第三个元素为消息的内容。执行subscribe命令会造成客户端阻塞,使用unsubscribe退订频道时你无法看到明显的效果。
    publish channel message 向指定频道发送消息,channel为频道名称,message为要发送的消息
    unsubscribe channel [channel…] 退订一个或多个频道
    psubscribe pattern [pattern…] 订阅一个或多个符合给定模式的频道。pattern可以是一个全局风格通配符,例如channel.*表示匹配所有以cahnnel.为前缀的频道,例如channel.[ie]t可以匹配channel.it或channel.ie。 psubscribe与subscribe命令一样返回订阅信息,只不过psubscribe在订阅多个频道时会返回多条订阅信息。
    punsubscribe pattern [pattern…] 退订一个或多个符合给定模式的频道。执行punsubscribe命令会返回一条退订消息,消息由三个元素组成,第一个元素是”punsubscribe”表示该条消息由punsubscribe命令引起的退订,第二个元素是被退订的模式,第三个是客户端在执行当前退订后,仍在订阅模式的数量。
    pubsub subcommand [argument [argument …]] 查看发布订阅信息

    subscribe 与 publish 命令例子效果图:
    发布与订阅 - 图1

    psubscribe订阅一个或多个模式(下面例子订阅以channel.为前缀的频道):
    发布与订阅 - 图2
    pubsub命令用于查看发布、订阅有关的各种信息,pusub目前有3个子命令:

    1. #作用:查看被订阅的频道
    2. #语法 pubsub channels [pattern]
    3. #例子1(查看所有模式被订阅的频道):pubsub channels
    4. #例子2(查看以c.为前缀被订阅的频道):pubsub channels c.*
    5. #作用:查看频道的订阅者数量
    6. #语法:pubsub numsub [channel...]
    7. #作用:查看被订阅者模式的总数量
    8. #语法:pubsub numpat