Redis瑞士军刀发布订阅

发布订阅

 角色:

  • 发布者(publisher)
  • 订阅者(subscriber)
  • 频道(channel)

 

模型 

发布订阅:发布一条消息,所有的订阅者都可以收到消息

 

 


       当然,每一个订阅者是可以订阅多个频道的(如下图),现在Redis里有两个频道,有的订阅者订阅了一个频道,有的订阅了两个频道。当消息发送的时候,就可以收到不同频道发送的消息。不关注的频道收不到。但是有这样一个问题,假如说,发布者现在发布了一个消息到一个频道了,一个新的订阅者订阅了,他是收不到之前的消息的。

 

publish(发布命令)

publish channel message                            用于将信息发送到指定的频道(返回订阅数)


subscribe(订阅)

subscribe [channel]                                       用于订阅给定的一个或多个频道的信息


unsubscribe(取消订阅)

unsubscribe[channel]                                       用于退订给定的一个或多个频道的信息


                                                 其他API 

 


                                                  消息队列

        与发布订阅的区别:发布订阅发布一条消息后,所以的订阅者都可以收到消息。对于消息队列来说,他是一个抢的功能。发送一条Hello只有一个消息订阅者可以收到,因为他是一个抢的功能。而且Redis也没有提供这样的功能(就是说有一个东西叫做消息队列),而是说使用list来实现,使用阻塞的这样去拉的这样一个功能,大家去抢这个东西。

注:当你开发使用这样的模型的时候,首先要考虑到是一个订阅者收到,还是都收到(要根据不同的场景来决定)。例如现在需要将所有的订阅者的本地缓存都清空,那么就需要使用发布订阅模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值