监听器的创建

  1. package com.sogou.baike.testimport.testSubscribe;
  2.  
  3. import redis.clients.jedis.JedisPubSub;
  4.  
  5. public class RedisMsgPubSubListener extends JedisPubSub {
  6. @Override
  7. public void unsubscribe() {
  8. super.unsubscribe();
  9. }
  10.  
  11. @Override
  12. public void unsubscribe(String... channels) {
  13. super.unsubscribe(channels);
  14. }
  15.  
  16. @Override
  17. public void subscribe(String... channels) {
  18. super.subscribe(channels);
  19. }
  20.  
  21. @Override
  22. public void psubscribe(String... patterns) {
  23. super.psubscribe(patterns);
  24. }
  25.  
  26. @Override
  27. public void punsubscribe() {
  28. super.punsubscribe();
  29. }
  30.  
  31. @Override
  32. public void punsubscribe(String... patterns) {
  33. super.punsubscribe(patterns);
  34. }
  35.  
  36. @Override
  37. public void onMessage(String channel, String message) {
  38. System.out.println("channel:" + channel + "receives message :" + message);
  39. this.unsubscribe();
  40. }
  41.  
  42. @Override
  43. public void onPMessage(String pattern, String channel, String message) {
  44.  
  45. }
  46.  
  47. @Override
  48. public void onSubscribe(String channel, int subscribedChannels) {
  49. System.out.println("channel:" + channel + "is been subscribed:" + subscribedChannels);
  50. }
  51.  
  52. @Override
  53. public void onPUnsubscribe(String pattern, int subscribedChannels) {
  54.  
  55. }
  56.  
  57. @Override
  58. public void onPSubscribe(String pattern, int subscribedChannels) {
  59.  
  60. }
  61.  
  62. @Override
  63. public void onUnsubscribe(String channel, int subscribedChannels) {
  64. System.out.println("channel:" + channel + "is been unsubscribed:" + subscribedChannels);
  65. }
  66. }

订阅类的创建

  1. public class TestSubscribe {
  2. @Test
  3. public void testSubscribe() throws Exception{
  4. Jedis jedis = new Jedis("localhost");
  5. RedisMsgPubSubListener listener = new RedisMsgPubSubListener();
  6. jedis.subscribe(listener, "redisChatTest");
  7. //other code
  8. }
  9. }

发布消息

  1. Public class TestPublish {
  2. @Test
  3. public void testPublish() throws Exception{
  4. Jedis jedis = new Jedis("localhost");
  5. jedis.publish("redisChatTest", "我是天才");
  6. Thread.sleep(5000);
  7. jedis.publish("redisChatTest", "我牛逼");
  8. Thread.sleep(5000);
  9. jedis.publish("redisChatTest", "哈哈");
  10. }
  11. }

Redis消息订阅与发布的更多相关文章

  1. Linux+Redis实战教程_day02_消息订阅与发布_多数据库_redis批量操作-事务_redis持久化

    5.扩展知识-消息订阅与发布(了解) 订阅新闻,新闻发布 subscribe channel:订阅频道,例:subscribe mychat,订阅mychat这个频道 psubscribe chann ...

  2. Redis之Redis消息订阅发布简介

    概念: Redis消息订阅发布是进程间的一种消息通信模式,发送者pub发送消息,订阅者sub接收消息. 使用须知: 需要先订阅后发布,才能接收到消息.在订阅时,相当于创建了可供发布的频道. 案例: ( ...

  3. 基于redis的消息订阅与发布

    Redis 的 SUBSCRIBE 命令可以让客户端订阅任意数量的频道, 每当有新信息发送到被订阅的频道时, 信息就会被发送给所有订阅指定频道的客户端. 作为例子, 下图展示了频道 channel1  ...

  4. Redis的消息订阅及发布及事务机制

    Redis的消息订阅及发布及事务机制 订阅发布 SUBSCRIBE PUBLISH 订阅消息队列及发布消息. # 首先要打开redis-cli shell窗口 一个用于消息发布 一个用于消息订阅 # ...

  5. python+mitmproxy抓包过滤+redis消息订阅+websocket实时消息发送,日志实时输出到web界面

    本实例实现需求 在游戏SDK测试中,经常需要测试游戏中SDK的埋点日志是否接入正确.本实例通过抓包(客户端http/https 请求)来判定埋点日志是是否接入正确. 实现细节:使用django项目,后 ...

  6. 二十四 Redis消息订阅&事务&持久化

    Redis数据类型: Redis控制5种数据类型:String,list,hash,set,sorted-set 添加数据,删除数据,获取数据,查看有多少个元素,判断元素是否存在 key通用操作 JR ...

  7. 利用redis的订阅和发布来实现实时监控的一个DEMO(Python版本)

    redis的list类型有个很好的特性,就是每次添加元素后会返回当前list的长度,利用这个特点,我们可以监控它的长度,比如我们的key是用户注册的IP地址,list中存放的是已经在此IP地址上注册的 ...

  8. vue - Vue脚手架/消息订阅与发布

    今天的内容有意思了,朋友们继续对我们之前的案例完善,是这样的我们之前是不是靠props来完成父给子,子给父之间传数据,其实父给子最好的方法就是props但是自给父就不是了,并且今天学下来,不仅如此,组 ...

  9. Vue学习之--------消息订阅和发布、基础知识和实战应用(2022/8/24)

    文章目录 1.基础知识 2.代码实例 2.1 main.js 2.2 School.vue 2.3 Student.vue 2.4 App.vue 3.全局事件总线通信改为消息的订阅和发布 3.1 核 ...

随机推荐

  1. Yii2高级模板的安装

    1.通过composer 安装高级版 C:wampwwwyii>composer create-project --prefer-dist yiisoft/yii2-app-advanced a ...

  2. curl查看index以及settings

    1.查看mapping curl -u elastic:elastic -XGET "127.0.0.1:9200/index_name/_mapping" 2.查看setting ...

  3. web开发调用百度地图API + AK申请

    web开发调用百度地图API + AK申请 要使用百度地图的API我们首先需要在我们的html页面引入js----`` 如何获取百度地图ak: 1.登陆百度地图开发者平台 2.注册百度开发者账号并登陆 ...

  4. Dubbo入门到精通学习笔记(十一):Dubbo服务启动依赖检查、Dubbo负载均衡策略、Dubbo线程模型(结合Linux线程数限制配置的实战分享)

    文章目录 Dubbo服务启动依赖检查 Dubbo负载均衡策略 Dubbo线程模型(结合Linux线程数限制配置的实战分享) 实战经验分享( ** 属用性能调优**): Dubbo服务启动依赖检查 Du ...

  5. 使用U盘或在本地电脑作为git远程仓库进行托管

    情景描述: 当有两台电脑需要共同维护一段代码,其中一台电脑不希望(或者不能)通过网络的方式进行访问git仓库(即不使用github),那么可以使用U盘作为介质将其作为远程仓库,或者使用局域网中一台电脑 ...

  6. POJ3630-Phone List-Trie字典树模板题

    Given a list of phone numbers, determine if it is consistent in the sense that no number is the pref ...

  7. webdriver使用已打开过的chrome

    基本功能: 执行脚本a,打开一个chrome,脚本a执行完成,chrome未关闭. 执行脚本b,继续使用a打开的chrome,不新启浏览器. 附加: 如果已打开的chrome未关闭,则在chrome中 ...

  8. C#内嵌Python架构实现

    C#通过IronPython内嵌Python脚本,实现了对业务逻辑抽象及判断,适合在大量订单需要进行校验的场合使用. 比如,贷款时会对用户进行核查,核查过程可能存在多个节点,并且节点可能会随着政策而不 ...

  9. jmeter 读写excel插件编写教程系列(1) -开篇

    不知道为什么,jmeter 竟然不提供 读写excel 的Sampler! 但是在我们自动化接口测试过程中,参数化.保存测试数据,用excel 是比较好的解决方案! 接下来一段儿时间,大虫会抽出一些时 ...

  10. 冲上云霄,Dubbo Go!

    来源:开源中国社区 5 月 21 日,经过一年多的孵化,Apache Dubbo 从 Apache 软件基金会毕业,成为 Apache 顶级项目.推荐:厉害了,Dubbo 正式毕业! Dubbo 是阿 ...