redis的发布订阅

redis的发布订阅

Redis 发布订阅(pub/sub)是一种消息通信模式,可以用于消息的传输,Redis的发布订阅机制包括三个部分,发布者,订阅者和Channel。适宜做在线聊天、消息推送等。发布者和订阅者都是Redis客户端,Channel则为Redis服务器端,发布者将消息发送到某个的频道,订阅了这个频道的订阅者就能接收到这条消息,客户端可以订阅任意数量的频道。

需要注意的是发布者和订阅者并没有数据库的局限性在db0发布消息,在db1中的订阅者还是可以接受到消息的。

 

开启两个redis客户端,在第一个客户端订阅channel(通道),订阅操作是阻塞式的

subscribe c1 c2 cn 可以订阅多个通道,c1是通道名称

切换到另一个客户端进行发布消息。

publish c1 msg c1是通道名,msg是内容

切换到第一个客户端,结果:接收到hello消息。

psubscribe pattern1 pattern2 ··· 匹配与给定规则相同的channel,c*则匹配名称c开头的所有的通道。

pubsub channels [pattern] 返回所有的通道

pubsub numsub c1 ··· 返回单个或多个通道的订阅数

pubsub numpat 返回订阅模式的数量。 这个命令返回的不是订阅模式的客户端的数量, 而是客户端订阅的所有匹配模式(即上文的c*即是一个匹配模式)的数量总和

unsubscribe c1 ··· 退定多个channels

punsubscribe c* [pattern] 退定多个匹配模式的

 

Redis发布订阅与专门的消息中间件的比较(例如ActiveMQ)

(1)ActiveMQ支持多种消息协议,包括AMQP,MQTT,Stomp等,并且支持JMS规范,但Redis没有提供对这些协议的支持; 

(2)ActiveMQ提供持久化功能,但Redis无法对消息持久化存储,一旦消息被发送,如果没有订阅者接收,那么消息就会丢失; 

(3)ActiveMQ提供了消息传输保障,当客户端连接超时或事务回滚等情况发生时,消息会被重新发送给客户端,Redis没有提供消息传输保障。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈大侠在江湖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值