Redis发布订阅

Stella981
• 阅读 434

简介

发布者和订阅者都是Redis客户端。发布者可以发消息到任意多个频道上,订阅者可以订阅任意多个频道。

订阅命令

subscribe channel [channel ...]:返回的数字 1 , 2 表示订阅的第n个频道,频道返回的消息类型是message

127.0.0.1:6379> subscribe education health
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "education"
3) (integer) 1
1) "subscribe"
2) "health"
3) (integer) 2

psubscribe  channel [channel ...] :p—pattern,模式匹配,相当正则。假如有频道 news.it  、news.beauty 、newsPE , health 、那只有前两个符合正则news.*,那么前两个频道的消息,订阅者都能接受。频道返回的消息类型是pmessage

127.0.0.1:6379> subscribe news.*
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "news.*"
3) (integer) 1

unsubscribe [channel [channel ...]] : 取消通过subscribe订阅的频道 ,如果不加传入频道参数,客户端使用 SUBSCRIBE 命令订阅的所有频道都会被退订

punsubscribe [channel [channel ...]] :取消通过psubscribe订阅的频道 ,如果不加传入频道参数,客户端使用 PSUBSCRIBE 命令订阅的所有频道都会被退订

redis一旦接受了一条订阅命令之后,就不能再接受下一条命令,订阅命令就是阻塞式的。只有强行退出Ctrl+C,重启客户端,才能输入别的命令。

发布命令

publish channel message :返回的整数表示接收到该消息的客户端总数。

C:\Users\user>redis-cli
127.0.0.1:6379> publish new.love "love forever"
(integer) 0
127.0.0.1:6379> publish new.* "hehe"
(integer) 0
127.0.0.1:6379> publish foo "food"
(integer) 1
127.0.0.1:6379> publish foo "food1"
(integer) 3
127.0.0.1:6379> publish foo "bibi"
(integer) 3
127.0.0.1:6379> publish foo "hiie"
(integer) 2
127.0.0.1:6379> publish foo "oooo"
(integer) 1
127.0.0.1:6379> publish aaaBB "shenjingbing"
(integer) 1
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
仲远 仲远
1年前
YouTube for mac(YouTube客户端) v1.22(56)免激活版
YouTubeformac适用于iPhone和iPad的YouTube官方应用。看世界之所看,享世界之所享一从最热门的音乐视频,到时下流行的游戏、时尚、美容、新闻和学习等类型的内容,全部尽揽眼底。您可以订阅喜爱的频道、创作自己的内容、与朋友分享精彩内容,还可以在任意设备上观看视频。
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Anthony555 Anthony555
3年前
前端面试系列——Vue面试题
Vue双向绑定原理mvvm双向绑定,采用数据劫持结合发布者订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter、getter,在数据变动时发布消息给订阅者,触发相应的监听回调。双
Stella981 Stella981
3年前
EventBus源码分析
一、        EventBus简介1.1、EventBusEventBus是一个Android事件发布/订阅框架,通过解耦发布者和订阅者简化Android事件传递,这里的事件可以理解为消息,本文中统一称为事件。事件传递既可用于Android四大组件间通讯,也可以用户异步线程和主线程间通讯等等。传统的事件
Stella981 Stella981
3年前
RabbitMQ之消息发布订阅与信息持久化技术
信息发布与订阅Rabbit的核心组件包含Queue(消息队列)和Exchanges两部分,Exchange的主要部分就是对信息进行路由,通过将消息队列绑定到Exchange上,则可以实现订阅形式的消息发布及Publish/Subscribe在这种模式下消息发布者只需要将信息发布到相应的Exchange中,而Ex
Stella981 Stella981
3年前
Redis 消息订阅
In2:pcache.pubsub()In3:pOut3:<redis.client.PubSubat0x10fecb748In5:defecho_message(message):...:print("")
Stella981 Stella981
3年前
Redis 发布订阅
Redis发布订阅Redis发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。Redis客户端可以订阅任意数量的频道。下图展示了频道channel1,以及订阅这个频道的三个客户端——client2、client5和client1之间的关系:!(
Stella981 Stella981
3年前
Redis发布订阅(Pub
一、redis做消息队列1\.redis存储的list数据是双向链表实现的,可以作为队列2\.使用lpush和rpop实现入队和出队3\.每次使用lpush和rpop都要发起一次连接,性能不好4\.这是一次生产,一次消费的队列二、发布/订阅模式(publish/subscribe),也是作为消息队列1\.可以一次生产
Stella981 Stella981
3年前
Redis发布订阅机制
原文:Redis发布订阅机制(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.cnblogs.com%2Fyitudake%2Fp%2F6747995.html)1\.什么是RedisRedis(https://www.oschina.n