1、发布订阅模型
发布订阅其做用是为了减小依赖关系,一般也叫观察者模式。主要是把耦合点单独抽离出来做为第三方,隔离易变化的发送方和接收方。redis
发送方:只负责向第三方发送消息。(杂志社把读者杂志交给邮局)
接收方:被动接收消息。(1:向邮局订阅读者杂志,2:去门口接邮过来的杂志)
第三方:存储订阅杂志的接收方,并在杂志过来时送给接收方。 (邮局)服务器
2、redis中的发布订阅
redis实现完整的发布订阅范式,就是说任何一台redis服务器,启动后均可以当作发布订阅服务器。工具
一、普通订阅
a、订阅bar频道。格式:subscribe name1 name2。
成功订阅回复,分别对应订阅类型、订阅频道、订阅数量。spa
b、发布bar频道。格式:publish channelname message。3d
c、订阅bar频道的回复,分别对应消息类型,频道,消息。blog
二、模式订阅
redis支持模式匹配订阅,*为模糊匹配符。
订阅全部频道的消息:psubscribe *
订阅以news.开头的全部频道:psubscribe news.*channel
三、取消订阅
取消普通订阅和取消模式订阅的命令。im
unsubscribe bar
punsubscribe ba*
取消在官方提供的链接工具中没法模拟的。img
四、查看订阅信息
命令:pubsub channels [pattern],查看订阅消息是redis在2.8中新增长的命令之一。di
4.一、返回当前服务器被订阅的全部频道。
127.0.0.1:6379> pubsub channels
1) "bar"
4.二、指定匹配参数,返回与模式匹配的全部频道。
127.0.0.1:6379> pubsub channels ba*
1) "bar"
4.三、接受任意多个频道做为输入参数,返回这些频道的订阅者数量。127.0.0.1:6379> pubsub numsub bar bar21) "bar"2) (integer) 13) "bar2"4) (integer) 0