Redis瑞士军刀发布订阅

14 篇文章 0 订阅

发布订阅

 角色:

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

 

模型 

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

 

 


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

 

publish(发布命令)

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


subscribe(订阅)

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


unsubscribe(取消订阅)

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


                                                 其他API 

 


                                                  消息队列

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis发布订阅(Pub/Sub)功能是一种消息传递模式,允许多个客户端订阅频道以接收消息,并且可以将消息发布到指定的频道中。 下面是使用Redis发布订阅功能的基本步骤: 1. 订阅频道:使用SUBSCRIBE命令可以订阅一个或多个频道。例如,要订阅名为"channel1"和"channel2"的频道,可以执行以下命令: ``` SUBSCRIBE channel1 channel2 ``` 2. 发布消息:使用PUBLISH命令可以将消息发布到指定的频道。例如,要将消息"Hello, Redis Pub/Sub!"发布到名为"channel1"的频道中,可以执行以下命令: ``` PUBLISH channel1 "Hello, Redis Pub/Sub!" ``` 3. 接收消息:订阅频道后,Redis将会推送所有发布到该频道的消息。你可以通过订阅命令的响应来接收消息。例如,如果有消息发布到了"channel1"频道,你将收到以下响应: ``` message channel1 "Hello, Redis Pub/Sub!" ``` 4. 取消订阅:当你不再需要接收某个频道的消息时,可以使用UNSUBSCRIBE命令取消对该频道的订阅。例如,要取消对"channel1"频道的订阅,可以执行以下命令: ``` UNSUBSCRIBE channel1 ``` 使用Redis发布订阅功能,可以实现解耦和异步通信,适用于实时消息推送、事件驱动的架构等场景。请注意,Redis发布订阅功能是单向的,无法保证消息的可靠性传递。如果需要更高级别的消息队列功能,可以考虑使用Redis Streams或其他消息队列系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值