Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。

Redis 客户端可以订阅任意数量的频道。 (推荐学习:Redis视频教程)

Redis提供了发布订阅功能,可以用于消息的传输,Redis的发布订阅机制包括三个部分,发布者,订阅者和Channel。

发布者和订阅者都是Redis客户端,Channel则为Redis服务器端,发布者将消息发送到某个的频道,订阅了这个频道的订阅者就能接收到这条消息。Redis的这种发布订阅机制与基于主题的发布订阅类似,Channel相当于主题。

1,引入Jedis

redis.clients

jedis

2.9.0

2,具体实现代码package com.hcmony.sword.redis;

import org.apache.commons.lang3.StringUtils;

import redis.clients.jedis.Jedis;

import redis.clients.jedis.JedisPool;

import redis.clients.jedis.JedisPubSub;

/**

*

Shenjue.java基本描述

*

*

* @author hcmony

* @since V1.0.0, 2019/05/06 20:07

*/

public class RedisMQ {

private static final String TOPIC="TOPIC";

private final JedisPool jedisPool;

public RedisMQ(JedisPool jedisPool) {

this.jedisPool = jedisPool;

}

/**

* 发布消息

* @param topic

* @param messge

*/

public void publish(String topic ,String messge){

Jedis jedis = null;

if (StringUtils.isBlank(topic)){

topic=TOPIC;

}

try {

jedis = jedisPool.getResource();

jedis.publish(topic,messge);

}

finally {

if (null != jedis) {

jedis.close();

}

}

}

/**

* 订阅消息

* @param topic

* @param jedisPubSub

*/

public void subscribe(String topic,JedisPubSub jedisPubSub){

Jedis jedis = null;

if (StringUtils.isBlank(topic)){

topic=TOPIC;

}

try {

jedis = jedisPool.getResource();

jedis.subscribe(jedisPubSub,topic);

}

finally {

if (null != jedis) {

jedis.close();

}

}

}

public static void main(String[] args) {

//默认连接本地redis,

// loclhost:6379

JedisPool jedisPool = new JedisPool();

RedisMQ publish = new RedisMQ(jedisPool);

new Thread(new Runnable() {

@Override

public void run() {

publish.subscribe("PID",new MyjedisPubSub());

}

}).start();

for (int i=0;i<100;i++){

publish.publish("PID","messge"+i);

}

}

public static class MyjedisPubSub extends JedisPubSub {

@Override

public void onMessage(String channel, String message) {

System.out.println("-------channel is "+channel+" message is "+message);

}

}

}

更多Redis相关技术文章,请访问Redis数据库使用入门教程栏目进行学习!

redis订阅和发布 消息推送php,redis发布订阅什么用相关推荐

  1. 订阅号服务器消息推送数量,如何解决微信公众号一个月只能发4次消息的问题...

    如何解决微信公众号一个月只能发4次消息的问题 发布时间:2021-01-19 09:49:16 来源:亿速云 阅读:120 作者:小新 这篇文章将为大家详细讲解有关如何解决微信公众号一个月只能发4次消 ...

  2. php mysql朋友圈设计_CoffeePHP社区 模仿微信朋友圈的逻辑(SWOOLE+REDIS+PHP+MYSQL实现消息推送)...

    CREATE TABLE `cn_friends_circle` ( `fc_id` varchar(50) CHARACTER SET utf8 NOT NULL DEFAULT '' COMMEN ...

  3. 微信小程序消息推送(订阅消息原模板消息)开发流程

    注:模板消息没了. 正常开发肯定需要前后端配合,此处都在小程序里写了 参考文档:https://developers.weixin.qq.com/miniprogram/dev/framework/o ...

  4. 【PWA学习】4. 使用 Push API 实现消息推送

    引言 在接下来的内容里,我们会探究 PWA 中的另一个重要功能--消息推送与提醒(Push & Notification).这个能力让我们可以从服务端向用户推送各类消息并引导用户触发相应交互 ...

  5. php 推送 短消息,php实现消息推送的方法

    php实现消息推送的方法 发布时间:2020-06-28 13:38:57 来源:亿速云 阅读:148 作者:Leah 本篇文章为大家展示了php实现消息推送的方法,代码简明扼要并且容易理解,绝对能使 ...

  6. 微信消息推送配置详解 JAVA后端版本

    最近公司做小程序需要用到消息推送,笔者在一路采坑做完后几个笔记,希望能帮到大家少采坑. 如果你连小程序都没有注册也没有做,那就不要继续看了....... 微信官方文档:  微信消息推送      微信 ...

  7. in java中文版百度云 thinking_小程序订阅消息推送(含源码)java实现小程序推送,springboot实现微信消息推送...

    前面写过一篇云开发实现小程序订阅消息(模板消息)推送的文章,<借助云开发实现小程序订阅消息和模板消息的推送功能>是有好多同学用的是Java写后台,所以今天就再来写一篇Java后台实现小程序 ...

  8. google订阅消息推送

    谷歌订阅消息推送 https://console.cloud.google.com/home/dashboard?project=onreading-300308 中的服务账号最下买的添加秘钥,点击添 ...

  9. 微信订阅消息推送(记录)

    1.打开微信公众平台,选用订阅消息模板(可在公共库选用,也可自己申请:审核时间3-7天): 2.打开微信官方文档,了解订阅消息的方法subscribeMessage.send | 微信开放文档 3.建 ...

最新文章

  1. ASP.NET 发邮件方法
  2. matlab-代数方程
  3. java配置文件扫描包_SpringMVC和Spring的配置文件扫描包详解
  4. php数组添加数组_PHP数组
  5. element label动态赋值_基于Element封装可拖动放大缩小的弹窗
  6. 使用Vitamio打造自己的Android万能播放器(6)——在线播放(播放列表)
  7. window.location.href重定向 不会触发webview
  8. 【代码+论文】基于自适应排序学习的个性化推荐方法
  9. iView学习笔记(四):Form表单操作
  10. RK3288_Android7.1平台基于DRM框架的LCD开发
  11. 中国智能座舱行业发展前景展望与投资战略规划研究报告2022年版
  12. 从微信封杀拼多多链接浅谈我是如何解决微信屏蔽封杀外部以及广告链接的
  13. RCLAMP0524P超低电容TVS二极管阵列,DFN-10L封装
  14. 笔记本合上盖子锁定计算机,解决:win10笔记本电脑不合上盖子时也锁定
  15. 大语言模型将如何影响软件开发?
  16. B 吃雪糕(科林明伦杯)
  17. axis.jar的应用
  18. java获取text plain_request中获取post的json对象数据content-type=“text/plain”
  19. 利用虚拟化实现PC平滑迁移
  20. ,什么叫他妈的惊喜?

热门文章

  1. PTA 彩虹瓶 (25分)
  2. html 鼠标放在div悬停事件,用js给div添加鼠标悬停事件
  3. 人生三十年碎语---不同人生阶段的感悟,呵呵
  4. 云计算时代:数字化转型的基础设施
  5. 2021年大数据安全迎来新革变与治理
  6. 江西新华计算机学院,江西新华电脑学院
  7. ppt文本的实心正方形块
  8. mysql设置用户密码的方法_mysql设置用户密码的几种方法
  9. nashorn java_Java新特性之Nashorn的实例详解
  10. html锚点滑动效果,【转载】HTML锚点效果改进平滑移动页面滚动特效实现技术