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");
    }
posted @   帅气的涛啊  阅读(61)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示

目录