Redis监听(发布与订阅)

更新时间:2023-07-01 11:36:56 阅读: 评论:0

雪的歌曲有哪些
Redis监听(发布与订阅)
发布与订阅(publish/subscribe)的特点是订阅者(listener)负责订阅频道(channel),发送者(publisher)负责向频道发送⼆进制字符串消息。
不忠迅雷下载每当有消息被发送⾄给定频道时,频道的所有订阅者都会收到消息。
1、直接使⽤Redis控制台发布/订阅信息
在redis中:
使⽤publish channel message即可向指定的channel发布信息,注意只能向⼀个channel发送消息
使⽤subscribe channel []即可监听指定的channel,注意可以同时监听多个channel
⽰例:土豆粥
先打开⼀个控制台,监听channel1
再打开⼀个控制台,向channel1发送消息
可以看到第⼀个控制台中收到了消息
这样就完成了⼀个完整publish/subsribe过程。
同学聚会诗词2、使⽤Jedis在Java程序汇总发布/订阅消息
2.1、发布消息
使⽤Jedis发布消息相对订阅来说⽐较简单,直接调⽤Jedis对象的publish⽅法即可:
public class JedisUtil{
private static JedisPool jedisPool = new
JedisPool(jedisPoolConfig,"localhost");
/**
* 作为⽣产者publish信息到制定的redis的channel
* @param channel
* @param msg
*/
public static void ndMsg(String channel,String msg){
Jedis jedis = Resource();
jedis.publish(channel,msg);
if (jedis!=null)jedis.clo();
}
}
2.2、订阅消息
Jedis中订阅消息主要通过JedisPubSub类实现,该类有多个回调⽅法,分别对应连接的不同时期。下⾯的例⼦只⽤了接收到信息时的回调⽅法。
public class RedisUtil{
//⽤于接收redis传递的消息的线程
private Thread redisThread;
/**
* 启动⽤于监听Redis消息的线程
*/
public void startListenThread(String channel){
redisThread = new Thread(()->{
Jedis jedis = JedisPool().getResource();
jedis.subscribe(new JedisPubSub() {
//接收到消息时的回调⽅法
马来王猪笼草
@Override
public void onMessage(String channel, String message) {
System.out.println(message);
中国的政体}
变道信号交警手势},channel);  //channel和publish时⽤的channel相对应
});
redisThread.start();
}
/**
* 停⽌⽤于监听Redis消息的线程
*/
public void stopListenThread(){
redisThread.interrupt();
}
}
酒仙桥
需要注意:
由于订阅以后回阻塞线程等待,固⼀般单独开⼀个线程进⾏监听
停⽌监听要记得释放资源,或者像上⾯的例⼦⼀样直接关闭线程

本文发布于:2023-07-01 11:36:56,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1063066.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:消息   订阅   发布   监听   信息   线程
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图