springboot使用redis实现发布与订阅
- 配置redis连接地址

# Redis服务器地址
spring.redis.host=youxiu326.xin
# Redis服务器连接端口
spring.redis.port=6379
# Redis服务器连接密码(默认为空)
spring.redis.password=
- redis订阅者
/**
* 消息处理器POJO
* redis订阅
*/
@Component
public class ConsumerMsg {
/**接收消息的方法*/
public void receiveMessage(String message,String chanel){
System.out.println("收到一条消息:"+message);
System.out.println("通道名称:"+chanel);
}
}
- redis配置类
@Configuration
public class RedisMessageConfig{
@Autowired
private RedisTemplate<Object, Object> redisTemplate;
@Bean
RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory, MessageListenerAdapter listenerAdapter) {
RedisMessageListenerContainer container = new RedisMessageListenerContainer();
container.setConnectionFactory(connectionFactory);
//订阅了一个叫blog.youxiu326.com的通道
container.addMessageListener(listenerAdapter, new PatternTopic("blog.youxiu326.com"));
//这个container 可以添加多个messageListener
return container;
}
/**
* 消息监听器适配器,绑定消息处理器,利用反射技术调用消息处理器的业务方法
* @param receiver
* @return
*/
@Bean
MessageListenerAdapter listenerAdapter(ConsumerMsg receiver) {
//这个地方 是给messageListenerAdapter 传入一个消息接受的处理器,利用反射的方法调用“receiveMessage”
//也有好几个重载方法,这边默认调用处理器的方法 叫handleMessage 可以自己到源码里面看
return new MessageListenerAdapter(receiver, "receiveMessage");
}
此时
- ConsumerMsg类就已经可以订阅blog.youxiu326.com通道的消息了
- redis发布
@Controller
public class RedisCtrl {
@Autowired
private StringRedisTemplate stringRedisTemplate;
/**
* redis发布
* @return
*/
@RequestMapping("/test")
public @ResponseBody String test(){
/**
* 通过blog.youxiu326.com通道发送了一条消息
*/
stringRedisTemplate.convertAndSend("blog.youxiu326.com", "牛逼不不不");
return "ok";
}
}
启动项目,访问 */test 就可以在控制台看到效果
来自 http://blog.youxiu326.com/view/8
springboot使用redis实现发布与订阅的更多相关文章
- redis实现发布(订阅)消息
redis实现发布(订阅)消息 什么是redis的发布订阅(pub/sub)? Pub/Sub功能(means Publish, Subscribe)即发布及订阅功能.基于事件的系统中,Pub/S ...
- Redis的发布和订阅
Redis的发布和订阅 Redis发布订阅(pub/sub)是一种消息通信模式,pub发布消息,sub接收消息.(pub/sub)是一种生产者消费者模式,是实现消息队列的一种方式 redis的订阅和发 ...
- Redis的发布与订阅
业务: 运用数据与信息指导小药工的采购生产与销售行为 需求背景: (1)药工汇小程序用户(即小型中药初加工用户)需要知道自己加工的品种的价格涨跌信息和品种相关资讯) 需求分析拆解: (1)使用爬虫程序 ...
- redis的发布与订阅机制
Redis 发布/订阅机制原理分析 Redis 通过 PUBLISH. SUBSCRIBE 和 PSUBSCRIBE 等命令实现发布和订阅功能. 这些命令被广泛用于构建即时通信应用,比如网络聊天室(c ...
- 一文带你了解 Redis 的发布与订阅的底层原理
01.前言 发布订阅系统在我们日常的工作中经常会使用到,这种场景大部分情况我们都是使用消息队列的,常用的消息队列有 Kafka,RocketMQ,RabbitMQ,每一种消息队列都有其特性,关于 Ka ...
- redis:消息发布与订阅频道
1. 发布与订阅频道 消息发布与订阅像收音机与广播台的关系 1.1. publish channel message 发布频道 语法:publish channel message 作用:发布频道消息 ...
- springboot2.0整合redis的发布和订阅
1.Maven引用 <dependency> <groupId>org.springframework.boot</groupId> <artifactId& ...
- redis的发布和订阅操作
- Redis - 发布和订阅
一.概述 1). 发布和订阅是一种消息通信模式. 2). 优点:使消息订阅者和消息发布者耦合度降低,类似设计模式中的观察者模式. 二.发布和订阅 订阅命令: // 订阅一个或多个频道 // 返回值:v ...
随机推荐
- 【VS 2022】给vs2022 添加类设计图
一.安装 1.开始菜单>找到 visual studio installer,单击打开 2.点击修改 3.在单个组件选项卡找到 类设计图 ,选择后点击安装 二.使用 1.右键要查看的项目-&q ...
- idea中maven配置 Unable to import maven project: See logs for details
Help -> show log in Explorer 1) No implementation for org.apache.maven.model.path.PathTranslator ...
- Git——版本控制器概述
一.版本控制 版本控制(Revision contontrol)是一种在开发过程中用于管理修改历史,方便查看更改历史记录,备份以便恢复以前版本的软件工程的技术. 1.实现跨区域多人协同开发 2.追踪和 ...
- 矩池云上nvidia opencl安装及测试教程
本教程租用的是2080ti,3.7多框架镜像. 添加nvidia-cuda的阿里源 curl -fsSL https://mirrors.aliyun.com/nvidia-cuda/ubuntu18 ...
- php常见的危险函数
代码执行的危险函数 eval() 把字符串作为php代码执行 早期php一句话木马都用这个 <?php @eval($_POST['shell']);?> assert() 检查一个断言是 ...
- Eureka单机&集群配置
目录 Eureka是什么 自我保护机制 版本选择 服务搭建 创建项目 导入GAV坐标 application启动类添加注解 配置yml 启动项目 集群配置 修改上面的yml 打jar包到另外一台电脑O ...
- tp6微信公众号开发者模式基础消息
官方文档 https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Receiving_standard_messages ...
- 微信小程序表单验证(WxValidate使用)
参考博客: https://www.cnblogs.com/zhangxiaoyong/p/10166951.html https://github.com/wux-weapp/wx-extend/b ...
- EasySwoole-延迟队列-取消订单
场景: 在用户要支付订单的时候,如果超过30分钟未支付,会把订单关掉.当然我们可以做一个定时任务,每个一段时间来扫描未支付的订单, 如果该订单超过支付时间就关闭,但是在数据量小的时候并没有什么大的问题 ...
- c++ 11 线程池---完全使用c++ 11新特性
前言: 目前网上的c++线程池资源多是使用老版本或者使用系统接口实现,使用c++ 11新特性的不多,最近研究了一下,实现一个简单版本,可实现任意任意参数函数的调用以及获得返回值. 0 前置知识 首先介 ...