redis发布订阅功能怎么实现
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,redis发布订阅功能怎么实现?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Redis 发布订阅(pub/sub)是一种消息通信模式
千家信息网最后更新 2025年01月22日redis发布订阅功能怎么实现
redis发布订阅功能怎么实现?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
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发布订阅功能怎么实现问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。
订阅
消息
订阅者
频道
功能
发布者
问题
主题
客户
客户端
更多
机制
帮助
解答
易行
简单易行
三个
代码
内容
发送者
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
三级数据库技术能免考什么
服务器T4
求生意志ol服务器授权
软件开发一个月工资有多少
数据库删除字段中的空格
创维软件开发应届生待遇
斗破苍穹手游服务器满怎么建号
问卷调查如何建立数据库
学生信息数据库设计
嵌入式软件开发培训班视频
文明重启假如服务器没有了怎么找
数据库一张表能存储多少行
公司员工管理系统数据库的设计
数据库主码和候选关键字的区别
vb登陆界面 数据库
最新办公软件开发工资
华硕软件开发工资
gbase数据库官网
蓝皇网络技术有限公司
人人网mysql数据库架构
mc开服务器教程
清远做app的软件开发多少钱
从数据库碎片
2017年网络安全周讲义
报销软件开发服务费
网络技术vlsm例题讲解
网络安全协议承诺模版
自建服务器环境
食品安全方面的数据库
数据库00904