我是靠谱客的博主 腼腆寒风,最近开发中收集的这篇文章主要介绍Pub/Sub 机制,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

#Pub/Sub
Redis 也支持消息的发布订阅模式,订阅者(Sub)通过SUBSCRIBE 命令和PSUBSCRIBE命令向redis 服务订阅频道(channel),当发布者通过PUBLISH 命令向chinnel发布命令时,订阅该频道的客户端都会受到此消息。

##PUB/SUB 机制
三个客户端都订阅channel1频道

订阅

当有新消息通过PUBLISH命令发布到channel1时,这个消息会被发送给订阅这个频道的客户端。
这里写图片描述

###redis-cli 使用PUB/SUB
####普通的pub/sub
启动一个客户端订阅频道:
这里写图片描述

使用SUBSCRIBE 命令订阅了两个频道,cxsj 、huoyuner 这两个参数代表着频道的名称。 通过上图我们可以看出这个命令输出了六行,分成了两组,每一组是一个Message,因为订阅、取消订阅、发布消息的操作都是通过message的方式进行发送,所以消息的第一个元素就是消息类型。它可以有:subscribe、ubsubscribe、publish 等类型。

启动另一个客户端发送消息:
这里写图片描述

往cxsj 频道里发布了一条“new movies”的消息,下面我们再看订阅端:
这里写图片描述

可以看到这条消息已经被订阅者给接收到了,收到的消息中,第一个参数类型是"message",第二个参数“cxsj”是频道的名称。第三个参数“new movies”是消息的内容。

####通配符的pub/sub
redis 还支持通配符的订阅和发布,客户端可以订阅一个或多个规则的频道。 下面我们用PSUBSCRIBE 来订阅c* 的频道。

这里写图片描述

接下来我们发送一条消息到cxsj这个频道里,此时,两个订阅者都能接收到消息。

这里写图片描述

注意:订阅者2是通过通配符订阅的,所以它的消息类型显示的是pmessage。 另外我们在操作实例的时候,发现当redis-cli 端执行的SUBSCRIBE或是PSUBSCRIBE的时候,是不能响应其他命令的,这也就说明了Redis的发布订阅模式,订阅者需要独占一个连接。

最后

以上就是腼腆寒风为你收集整理的Pub/Sub 机制的全部内容,希望文章能够帮你解决Pub/Sub 机制所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部