Redis 发布订阅模式

概述

Redis 的发布/订阅是一种消息通信模式:发送者(Pub)向频道(Channel)发送消息,订阅者(Sub)接收频道上的消息。Redis 客户端可以订阅任意数量的频道,发送者也可以向任意频道发送数据。在发送者向频道发送一条消息后,这条消息就会被发送到订阅该频道的客户端(Sub)

Redis 有两种发布/订阅模式:

  • 基于频道(Channel)的发布/订阅
  • 基于模式(Pattern)的发布/订阅

Redis 常用发布订阅模式命令如下:

  • subscribe channel [channel ...]:订阅给定的一个或多个频道
  • unsubscribe channel [channel ...]:退订给定的频道,若没有指定 channel,则默认退订所有频道
  • publish channel message:将消息发送给指定频道 channel,返回结果接收到信息的订阅者数量,无订阅者返回 0
  • pubsub channels [argument [atgument ...]]:查看订阅与发布系统的状态,返回活跃频道列表(即至少有一个订阅者的频道)
  • psubscribe pattern1 [pattern...]:订阅一个或多个符合给定模式的频道,每个模式以 * 作为匹配符,例如 cn* 匹配所有以 cn 开头的频道:cn.aaacn.bbb
  • punsubscribe [pattern [pattern ...]]:退订所有给定模式的频道,pattern 未指定,则订阅的所有模式都会被退订