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