什么是发布订阅?

发布和订阅是进程间的一种消息通信模式:发送者(publisher)将消息发送给一个第三方,订阅者(subscriber)从第三方那里接收消息。

这个第三方我们通常称之为 消息中间件,消息中间件主要是用来做系统之间异步通信,常见的消息中间件有:ActiveMQ,RocketMQ,RabbitMQ,Kafka 等。 
Redis 一般不用来做消息中间件,只用它做缓存,但是它仍然提供了这个功能。

发布和订阅应用场景?

场景:我们订阅了头条上的某个栏目的新闻,当这个栏目有新的新闻的时候,头条(服务端)会主动推送给我们,而我们(客户端)无需主动请求。

发布和订阅的优点?

由于我们所需的消息并不是从服务器直接请求得来,而是从消息中间件获得,因此缓解了服务端在高并发量情况下的压力。

就好比你是手机生产厂商,你不直接卖手机,而是把手机先交给代理商,代理商替你卖,你就轻松了。

发布和订阅的缺点?

  • 如果消费者不在线,消息可能接受不到(当然我们可以通过持久化存储的方式来解决)。

  • 实时性相对于服务器-客户端这种一对一的通信方式来说低一些。

Redis 是如何实现发布和订阅的?

涉及到的命令:

  • subscribe c1 c2 c3 ...:订阅 c1,c2,c3,…等频道。
  • psubscribe new*:订阅前缀为 new 的频道。
  • publish channel message:向 channel 频道发送 message 消息。

输入完 subscribe c1 c2 c3 之后,客户端就进入等待状态,等待订阅的频道向自己发送消息:

通过通配符来订阅多个频道:

Redis的发布订阅(消息队列,比如ActiveMQ,一方得到数据后,多方得到信息)相关推荐

  1. Redis 实现 发布/订阅 消息对列

    Redis实现 发布/订阅 消息对列 前言 发布订阅是一种典型的异步通信模型,可以让消息的发布者和订阅者充分解耦 一.什么是发布/订阅 Redis 发布订阅 (pub/sub) 是一种消息通信模式:发 ...

  2. kafka redis vs 发布订阅_发布订阅的消息系统 Kafka的深度解析

    背景介绍 Kafka简介 Kafka是一种分布式的,基于发布/订阅的消息系统.主要设计目标如下: 以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的访问性能 高吞吐 ...

  3. 【springboot】【redis】springboot+redis实现发布订阅功能,实现redis的消息队列的功能...

    springboot+redis实现发布订阅功能,实现redis的消息队列的功能 参考:https://www.cnblogs.com/cx987514451/p/9529611.html 思考一个问 ...

  4. redis的发布/订阅和mq消息队列的区别,该如何选择?

    好久没写笔记了,今天记录下使用消息队列的心得. 本文以reids和rocketmq对比 很多人一直有个疑问(包括我之前也是):redis支持已经消息队列(发布/订阅)了,为什么还需要mq呢? 项目已经 ...

  5. RabbitMQ,Apache的ActiveMQ,阿里RocketMQ,Kafka,ZeroMQ,MetaMQ,Redis也可实现消息队列,RabbitMQ的应用场景以及基本原理介绍,RabbitMQ

    RabbitMQ,Apache的ActiveMQ,阿里RocketMQ,Kafka,ZeroMQ,MetaMQ,Redis也可实现消息队列,RabbitMQ的应用场景以及基本原理介绍,RabbitMQ ...

  6. ActiveMQ之发布- 订阅消息模式实现

    一.概念 发布者/订阅者模型支持向一个特定的消息主题发布消息.0或多个订阅者可能对接收来自特定消息主题的消息感兴趣.在这种模型下,发布者和订阅者彼此不知道对方.这种模式好比是匿名公告板.这种模式被概括 ...

  7. java订阅发布模式_Spring Boot ActiveMQ发布/订阅消息模式原理解析

    本文在<Spring Boot基于Active MQ实现整合JMS>的基础上,介绍如何使用ActiveMQ的发布/订阅消息模式.发布/订阅消息模式是消息发送者发送消息到主题(topic), ...

  8. ActiveMQ Topic发布订阅消息

    2019独角兽企业重金招聘Python工程师标准>>> ActiveMQ Topic发布订阅消息 博客分类: MQ package com.googlecode.garbagecan ...

  9. springboot集成阿里MNS消息队列发布订阅消息功能

    声明: 上一篇文章是springboot集成阿里ons发布订阅消息,此篇文章是mns发布订阅功能先简单记录一下ons与mns有什么区别 这里是在网上找的对比图: 此处为具体区别文章链接:点击打开链接 ...

  10. ActiveMQ的发布—订阅消息模式

    一.订阅杂志 我们很多人都订过杂志,其过程很简单.只要告诉邮局我们所要订的杂志名.投递的地址,付了钱就OK.出版社定期会将出版的杂志交给邮局,邮局会根据订阅的列表,将杂志送达消费者手中.这样我们就可以 ...

最新文章

  1. 农业展会谋定丰收精髓-李加映:中国农民丰收节交易会
  2. 脑洞一下 | 产品经理是如何用一张小票推算店面房租的?
  3. 浅析商业银行“业务连续性管理体系”的构建
  4. IntegerCache的妙用和陷阱
  5. 使用Servlet 3.0,Redis / Jedis和CDI的简单CRUD –第1部分
  6. 为什么软件测试容易被小看,做软件测试容易忽视的问题
  7. 航行金税盘_通过陌生事物的情感进行统计好奇心航行
  8. 在资源管理器中使鼠标右键增加一个命令,运行cmd,同时使得当前路径为资源管理器当前的目录...
  9. C#多态 (小结转载)
  10. m()在php中的意思,计算器上的mc m+ m- mr是什么意思?
  11. android 图片上传图片 报Socket: Broken pipe
  12. qt中将数据库中的数据显示
  13. 【图像检索】基于matlab GUI综合颜色和形状特征图像检索【含Matlab源码 395期】
  14. TortoiseSvn执行SVN Commit一直显示Please wait...问题解决
  15. python根据时间序列画折线图_Python如何根据时间序列数据作图
  16. 基于微信小程序的高校毕业论文管理系统#毕业设计
  17. 计算机网络双语常用词汇,计算机网络协议词汇Protocols
  18. OpenCV计算机视觉编程攻略第2版pdf
  19. (申请加精)你所不知道的奶粉秘密(2)------转自天涯
  20. [软件工具][原创]加减乘除自动出题带答案不重复生成可代替加减法印章使用教程

热门文章

  1. kk6.0 服务器信息 端口,KK的服务器改了端口以后 为什么我进不去
  2. matlab repmat函数_Matlab向量化编程在二级劝退学科中的一个应用例子
  3. 1.4编程基础之逻辑表达式与条件分支 09判断能否被3,5,7整除(2021.12.05)
  4. ios开发跳转safari_iOS 跳转网页的四种方法
  5. RTX5 | 事件标志组03 - 线程同步(逻辑或)
  6. FreeRTOS | STM32H7串口中断调用FreeRTOS API,导致程序卡死
  7. shell不允许输入空字符_shell脚本编程之控制脚本
  8. ab plc软件_【万泉河】PLC垃圾程序赏析2:AB RSLOGIX 5000
  9. 【四】Java流程控制
  10. Spring Boot文档阅读笔记-EhCache的使用