当前位置: 首页 > news >正文

太原网站建设总部地址北京地铁建设的官方网站

太原网站建设总部地址,北京地铁建设的官方网站,舟山 做企业网站,网站开发什么意思Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者(sub) 接收消息 可以实现进程间的消息传递。这种模式非常适用于实时消息传递、事件通知和消息分发等场景 Redis可以实现消息中间件MQ的功能,通过发布订阅实现消息…

Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者(sub) 接收消息 可以实现进程间的消息传递。这种模式非常适用于实时消息传递、事件通知和消息分发等场景

Redis可以实现消息中间件MQ的功能,通过发布订阅实现消息的引导和分流。但是目前不推荐使用该功能,专业的事情交给专业的中间件处理,redis就做好分布式缓存功能

Redis 客户端可以订阅任意数量的频道

1.如何使用Redis发布订阅

  1. 订阅频道:客户端可以使用SUBSCRIBE命令订阅一个或多个频道。例如,SUBSCRIBE channel1 channel2订阅两个频道。

  2. 发布消息:使用PUBLISH命令,发布者可以向指定频道发送消息,如PUBLISH channel1 "Hello World"

  3. 接收消息:订阅了频道的客户端将接收到发布到这些频道的所有消息。

  4. 取消订阅:客户端可以使用UNSUBSCRIBE命令来退订一个或多个频道

发布订阅的特点

  • 解耦:发布者和订阅者之间是解耦的,发布者发送消息时不需要知道哪些订阅者会接收到这些消息。

  • 动态:订阅者可以随时订阅或退订频道,而不需要重新启动服务或进行复杂的配置。

  • 简单:Redis的发布订阅模型易于理解和实现,适合快速开发和部署。

2.发布和订阅流程图

客户端可以订阅频道如下图

当给这个频道发布消息后,消息就会发送给订阅的客户端

发布/订阅其实是一个轻量化的队列,只不过数据不会持久化,一般用来处理实时性较高的异步消息。

推荐先执行订阅然后再发布,订阅成功之前发布的消息是收不到的

3.操作命令

# 1. SUBSCRIBE channel [channel ...] 订阅给定的一个或多个频道的信息
# 订阅的客户端每次可以收到一个3个参数的消息
# 消息种类
# 始发频道的名称
# 实际的消息内容
127.0.0.1:6379> subscribe channel# PUBLISH channel message   发布消息到指定的频道
127.0.0.1:6379> publish channel hello# PSUBSCRIBE pattern [pattern ...]按照模式批量订阅,订阅一个或多个符合给定模式(支持*号?号之类的)的频道
127.0.0.1:6379> PSUBSCRIBE a* b?# PUBSUB subcommand [argument [argument ...]]  查看订阅与发布系统
# PUBSUB CHANNELS  由活跃频道组成的列表
# PUBSUB NUMSUB [channel [channel ...]]  某个频道有几个订阅者
# PUBSUB NUMPAT  只统计使用PSUBSCRIBE命令执行的返回客户端订阅的唯一模式的数量# UNSUBSCRIBE [channel [channel ...]] 退订给定的频道# PUNSUBSCRIBE [pattern [pattern ...]] 退订所有给定模式的频道

注:发布的消息没有持久化,如果在订阅的客户端收不到 hello,只能收到订阅后发布的消息

4.总结

可以实现消息中间件MQ的功能,通过发布订阅实现消息的引导和分流。但是不推荐使用该功能,专业的事情交给专业的中间件处理,redis就做好分布式缓存功能

PUB/SUB缺点

  1. 发布的消息在Redis系统中不能持久化,因此,必须先执行订阅,在等待消息发布。如果先发布了消息,那么该消息由于没有订阅者,消息将被直接丢弃

  2. 消息只管发送,对于发布者而言消息是即发即失,不管接受,也没有ACK机制,无法保证消息的消费成功

  3. 以上的缺点导致Redis的Pub/Sub模式就像个小玩具,在生产环境中几乎无用武之地,为此Redis5.0版本新增了Stream数据结构,不但支持多播,还支持数据持久化,相比Pub/Sub更加的强大

基于以上的缺点,在实际操作中需要考虑以下因素:

  • 消息的持久化:Redis Pub/Sub本身不提供持久化,如果需要保证消息不丢失,可能需要额外的机制或使用其他数据结构如Streams。

  • 消息的确认机制:Redis Pub/Sub不提供消息确认,如果需要确认消息已被订阅者成功处理,需要在应用层实现。

  • 安全性:确保只有授权的订阅者可以接收敏感消息。

  • 错误处理:实现错误处理机制,以便在消息传递过程中出现问题时能够恢复。

  • 监控和日志:记录消息传递的日志,并使用监控工具来跟踪系统性能和健康状态。

感谢大家,请大家多多支持!

http://www.yayakq.cn/news/709581/

相关文章:

  • 手机和pc网站手机版oa
  • wordpress 网站内跳转wordpress 163 授权码
  • 东莞哪家网站建设建网站的工具
  • 网站建设和维护自学网站开发新闻怎么写
  • 上海网站建设报价书商城源码哪家价格低
  • 做一个网站需要多少人清苑网站建设
  • 广17网站一起做网店网站切图大图
  • 石家庄做网站北京建设工程质量协会网站
  • 高米店网站建设公司网站统计付费
  • 网站开发提供源代码wordpress搬家后页面空白
  • 滨海网站建设服务商资深的环保行业网站开发
  • 什么是网站建设方案购物网站排行榜前十名
  • 做网站需要什么手续资料网站建设如何设计数据库
  • 网站后台管理系统密码博客网站程序
  • 带做网站怎么在百度做免费推广
  • 天河网站建设企业电商设计图片
  • 网站seo系统手机应用软件开发培训班
  • 建站的网站专业做网站和小程序
  • 公司设计网站有哪些怎么能将网站做的不简单
  • 站长网站工具网站建设中图片尺寸
  • 戴南网站建设外贸网站设计风格
  • 做网站 单页数量网站建设费应怎样做会计分录
  • 合肥珍岛公司做网站推广怎么样net网站开发
  • 长春谁家做网站上海专业网站制作公司
  • 做游戏网站需要注意的问题定西seo排名
  • 提高网站的用户体验度网站建设有哪些种类
  • 微网站如何做酷站 网站
  • 旅行网站建设的规划书大学生免费ppt网站
  • 抖音代运营服务内容明细网站排名优化化快排优化
  • 跟网站开发有关的内容加盟代理网