如何实现redis的发布订阅功能

分类:编程技术 时间:2024-02-20 15:14 浏览:0 评论:0
0
如何实现redis的发布订阅功能?针对这个问题,本文详细介绍了相应的分析和解答,希望能够帮助更多想要解决这个问题的朋友找到更简单、更容易的方法。

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

Redis 客户端可以订阅任意数量的频道。

Redis提供了发布和订阅功能,可以用于消息传输。 Redis的发布订阅机制由三部分组成,发布者(publisher)、订阅者(subscriber)和通道(Channel)。

发布者和订阅者都是Redis客户端,Channel是Redis服务器。发布者将消息发送到某个频道,并订阅该频道的订阅者都会收到此消息。 Redis的发布订阅机制与基于主题的publis类似h 和 subscribe,Channel 就相当于一个 topic。

1、引入Jedis

  redis.clients < artifactId>jedis 2.9.0 

2、具体实现代码

com.hcmony.sword.redis 包;导入org.apache.commons.lang3.StringUtils;导入redis.clients.jedis.Jedis;导入redis.clients.jedis.JedisPool;导入redis.clients.jedis.JedisPubSub; /** * 

Shenjue.java 基本说明

*

* * @author hcmony * @since V1.0.0, 2023/05/06 20:07 */public class RedisMQ {私有静态最终字符串主题=“主题”;私有最终 JedisPool jedisPool; public RedisMQ(JedisPool jedisPool) {this.jedisPool = jedisPool ;} /** * 发布消息 * @param topic * @param messagesge */public voidpublish(String topic ,String message){ Jedis jedis = null;if (StringUtils. isBlank(topic)){topic=TOPIC;}尝试 {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;}尝试 {jedis = jedisPool.getResource();jedis.subscribe(jedisPubSub ,topic);}finally {if (null != jedis) {jedis.close();}}} public static void main(String[] args) {//默认连接本地redis,// loclhost:6379JedisPool jedisPool = new JedisPool();RedisMQ 发布 = new RedisMQ(jedisPool);new Thread(new Runnable() {@Overridepublic void run() {publish.subscribe("PID",new MyjedisPubSub());}}).start( );for (int i=0;i<100;i++){publish.publish("PID","messge"+i) ;} } 公共静态类 MyjedisPubSub 扩展 JedisPubSub {@Overridepublic void onMessage(String 通道, String 消息) {System.out.println("--------channel is "+channel+" message is "+message);} } }

答案关于如何实现redis发布订阅功能的问题在这里分享一下。希望以上内容能够对大家有所帮助。如果您还有很多疑问没有得到解答,您可以关注行业资讯频道,了解更多相关知识。

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 如何实现redis的发布订阅功能

用户评论