简介
进程间的一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
下图展示了频道channel1,以及订阅这个频道的三个客户端--client2、client5和client1之间的关系:
当有新的消息通过publish命令发送给频道channel1时,这个消息就会被发送给订阅它的三个客户端:
命令
PSUBSCRIBE pattern [pattern ...]
订阅一个或者多个符合给点模式的频道
支持的模式
- h?llo: ?代表任意字符,比如hello, hallo,hxllo
- h*llo: *代表0个或者任意多个字符,比如hllo, haeeeell
- h[ae]llo: []代表在集合中挑选一个字符,比如hallo,hello
如果想输入普通的字符,可以通过前面加上\
PUBSUB subcommand [argument [argument ...]]
查看订阅与发布系统的状态
PUBLISH channel message
将信息发送到指定的频道
PUNSUBSCRIBE [pattern [pattern ...]]
退订所有给定模式的频道
SUBSCRIBE channel [channel ...]
订阅给定的一个或者多个频道的信息
UNSUBSCRIBE [channel [channel ...]
退订指定的频道
案例
案例1
- 使用subscribe命令订阅c1 c2 c3三个频道
- 在另外一个客户端中分别向c2,c1等频道发送消息
案例2
- 使用psubscribe命令订阅new*模式的频道
- 在另外一个客户端中分别向new1,new13等频道发送信息
总结
Redis虽然提供了Pub/Sub机制,但是很少将其作为消息中间件使用,所以这里只做简单的介绍,大概了解一下,有这么个东西即可。