上一章节我们已经学会了Redis在Java项目里面最基本的应用,我们这一章节来讲一讲Redis里面一个非常重要的功能:发布订阅

发布订阅(Pub/Sub):目前广泛使用的通信模型,它采用事件作为基本的通信机制,提供大规模系统所要求的松散耦合的交互模式:订阅者(如客户端)以事件订阅的方式表达出它有兴趣接收的一个事件或一类事件;发布者(如服务器)可将订阅者感兴趣的事件随时通知相关订阅者------是不是与设计模式里面的观察者模式一个妈妈生的?

最经典的应用场景就是微博和公众号,任何粉丝只要关注(订阅)了某一个人的微博或者公众号,该微博或者公众号只有有状态更新,都会将消息推送(发布)到粉丝....

下面我们基于Redis来实现这么一个发布订阅的功能:

第一步:引入Redis依赖jar包,可以关注上一篇《Redis之HelloWorld(Java)》

第二步:建立一个Publisher (发布者)线程类

定义一个订阅者类,继承JedisPubSub,重写其触发方法:

3、创建一个订阅者线程类,用来控制订阅者订阅消息频道

4、创建两个pub发布端,用来发布不同的频道信息

5、创建一个消费者客户端Sub

6、在pub1,pub2分别输入信息,sub都可以接收到,一分钟后,在pub1输入信息,sub不再接收

有需要资料的可以加群:1023705513

redis java 发布订阅_Redis之发布订阅(Java)相关推荐

  1. Redis中使用Java代码的方式实现发布订阅流程

    场景 Redis中的发布与订阅的概念与以命令行的方式实现发布订阅举例: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/105042 ...

  2. java 阅发布模式_redis发布订阅模式

    一 前言 虽然有消息队列,我们还是要了解一下redis发布订阅模式哟!!!!! 二发布订阅模式 PUBLISH 命令向通道发送信息,此客户端称为publisher 发布者: SUBSCRIBE 向命令 ...

  3. 【Redis数据库】命令学习笔记——发布订阅、事务、脚本、连接等命令汇总

    本篇基于redis 4.0.11版本,学习发布订阅.事务.脚本.连接的相关命令. Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息. 序号 ...

  4. Redis 笔记(10)— 发布订阅模式(发布订阅单个信道、订阅信道后的返回值分类、发布订阅多个信道)

    1. 发布-订阅概念 发布-订阅 模式包含两种角色,分别为发布者和订阅者. 订阅者可以订阅一个或者若干个频道(channel): 而发布者可以向指定的频道发送消息,所有订阅此频道的订阅者都可以收到此消 ...

  5. Redis 高级特性(2)—— 发布 订阅模式

    Redis 高级特性 -- 发布订阅 1. 发布-订阅介绍 "发布-订阅"模式包含两种角色,分别为发布者和订阅者.订阅者可以订阅一个或者若干个频道(channel),而发布者可以向 ...

  6. Redis源码剖析(五)订阅与发布

    Redis提供了订阅和发布的功能,允许客户端订阅一个或多个频道,当其他客户端向某个频道发送消息时,服务器会将消息转发给所有订阅该频道的客户端 这一点有点像群聊的功能,一个客户端将消息发往群中(向某个频 ...

  7. redis的源码编译安装+发布订阅+RDB持久化

    redis的源码编译安装+发布订阅+RDB持久化 转载于:https://www.cnblogs.com/zwq-/p/10420455.html

  8. Redis:20---常用功能之(发布与订阅)

    一.发布与订阅概述 Redis提供了基于"发布/订阅"模式的消息机制,此种模式下,消息发布者和订阅者不进行直接通信,发布者客户端向指定的频道(channel)发布消息,订阅该频道的 ...

  9. Redis精通系列——Pub/Sub(发布订阅)

      本文已收录于专栏 <Redis精通系列> 上千人点赞收藏,全套Redis学习资料,大厂必备技能! 目录 1.简介 2.实例演示 2.1 普通订阅 2.2 模式订阅 3.Pub/Sub为 ...

最新文章

  1. python 读excel中一个表_python – pandas read_excel在同一张表上的多个表
  2. thinkphp-权限控制
  3. UWidgetBlueprintLibrary
  4. 数据结构实验之栈:行编辑器
  5. Instance Object
  6. python提取xml的所有框坐标_python 提取批量xml文件中的坐标信息存入txt文件 xml文件转txt文件...
  7. C#的yield return是怎么被调用到的?
  8. Python 爬虫 PhantomJs 获取JS动态数据
  9. 算法探究:线性时间选择问题
  10. 软件测试经典案例佣金问题,佣金等价划分和测试用例设计.PPT
  11. 移植c语言算法到arm上,μCOS-II移植到ARM处理器上的几个要点
  12. Android 垂直与水平滚动条:Scrollview与HorizontalScrollView
  13. arch firefox
  14. Linux环境变量每次都要重新source的问题
  15. java 获取GPU 信息(英伟达)
  16. 背阔肌(08):站姿直臂下拉
  17. Python在生物学领域的简单应用——处理DNA序列
  18. AMQP 协议及 RabbitMQ 的 Java 用例
  19. Google Earth Engine批量下载Sentinel、Landsat、MODIS遥感影像代码
  20. ABAP动态修改屏幕

热门文章

  1. Problem C: 爬楼梯
  2. C语言执行Linux的shell命令并获得返回值
  3. WinForm皮肤控件(SkinEngine)
  4. 解决ubuntu 图标消失问题(ubuntu 16)
  5. 【实践】多场景下的搜索词推荐算法及在腾讯的应用实践.pdf(附下载链接)
  6. 【采访】腾讯社交广告高校算法大赛 决赛第一周周冠军——ThreeIdiots比赛经验及心得分享 腾讯广告算法大赛
  7. PHP判断pc和移动端跳转,JS判断是PC还是移动端浏览器,并根据不同的终端跳转到不同的网址...
  8. 销售服务器 以次充好 判刑,销售假冒产品怎么判刑处罚,法律怎么规定的?
  9. linux查看程序中最耗时的代码,【Linux】CPU时间与处理器耗时
  10. 算法题解题方法技巧及典例汇总