Redis学习(十)发布订阅

订阅,取消订阅和发布实现了发布/订阅消息范式(引自wikipedia),发送者(发布者)不是计划发送消息给特定的接收者(订阅者)。而是发布的消息分到不同的频道,不需要知道什么样的订阅者订阅。订阅者对一个或多个频道感兴趣,只需接收感兴趣的消息,不需要知道什么样的发布者发布的。这种发布者和订阅者的解耦合可以带来更大的扩展性和更加动态的网络拓扑。

常用命令

  • subscribe 订阅给定的一个或多个频道的信息

  • publish 将信息发送到指定的频道
    Redis学习(十)发布订阅_第1张图片
    Redis学习(十)发布订阅_第2张图片
    从上面的例子可以看到,订阅者和发布者在不同的数据库,说明发布/订阅与key所在空间没有关系,它不会受任何级别的干扰,包括不同数据库编码。

  • pubsub 用于查看订阅与发布系统状态,它由数个不同格式的子命令组成

  • pubsub channels 列出当前active channels。活跃是指信道含有一个或多个订阅者(不包括从模式接收订阅的客户端)

  • pubsub numsub 列出指定信道的订阅者个数(不包括订阅模式的客户端订阅者)

  • pubsub numpat 返回订阅模式的数量(使用命令PSUBSCRIBE实现)。注意, 这个命令返回的不是订阅模式的客户端的数量, 而是客户端订阅的所有模式的数量总和
    Redis学习(十)发布订阅_第3张图片

  • psubscribe 订阅一个或多个符合给定模式的频道。每个模式以 * 作为匹配符
    Redis学习(十)发布订阅_第4张图片
    Redis学习(十)发布订阅_第5张图片

  • unsubscribe 指退订给定的频道

  • punsubscribe 退订所有给定模式的频道

应用场景

  1. 实时消息系统,普通的即时聊天,群聊
  2. 公众号订阅消息推送

你可能感兴趣的:(Redis)