Redis发布与订阅
2024-02-02 01:00:32
顾名思义:发布与订阅是广播模式
分类
发布与订阅分为频道订阅
与模式订阅
频道订阅:订阅topicA、topicB,订阅者只会接收到这两个频道上发布的消息。
模式订阅:订阅topic*,订阅者将接收到所有匹配模式的频道上发布的消息。
详解
订阅频道
推送消息
频道数据结构
pubsub_channels 是一个字典,key是频道名,value是订阅客户端的链表。
模式数据结构
使用
@Bean
public RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory,
MessageListenerAdapter listenerAdapter) {
RedisMessageListenerContainer container = new RedisMessageListenerContainer();
container.setConnectionFactory(connectionFactory);
// 模式订阅
container.addMessageListener(listenerAdapter, new PatternTopic("topic*"));
// 频道订阅
container.addMessageListener(listenerAdapter, new ChannelTopic("topicA"));
return container;
}
// 消息监听适配器,绑定消息处理器,利用反射技术调用消息处理器的业务方法
@Bean
public MessageListenerAdapter listenerAdapter() {
return new MessageListenerAdapter(new Receiver(), "receiveMessage");
}
class Receiver {
public void receiveMessage(String message) {
System.out.println(message);
}
}
@RequestMapping("test")
void test(){
redisTemplate.convertAndSend("topicA","topicA message");
redisTemplate.convertAndSend("topicB","topicB message");
redisTemplate.convertAndSend("topicC","topicC message");
}
本文来自博客园,作者:帅气的涛啊,转载请注明原文链接:https://www.cnblogs.com/handsometaoa/p/18002418
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)