栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Springboot 整合Redis 发布订阅消息

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Springboot 整合Redis 发布订阅消息

前言

Redis不仅可作为缓存服务器,还可用作消息队列。它的列表类型天生支持用作消息队列。如下图所示:

1.导入包
    implementation group: 'redis.clients', name: 'jedis', version: '2.9.0'
2.填写配置信息
spring:
	  redis:
	    host: xxx
	    port: xxx
	    password: xxx
	    timeout: 10000
3.配置监听适配器
@Configuration
public class RedisConfig {


    @Bean
    RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory,
                                            MessageListenerAdapter listenerAdapter) {
        RedisMessageListenerContainer container = new RedisMessageListenerContainer();
        container.setConnectionFactory(connectionFactory);
        //订阅通道
        //这个container 可以添加多个 messageListener 监听多个通道
        container.addMessageListener(listenerAdapter, new PatternTopic("Notice"));
        return container;
    }

    @Bean
    MessageListenerAdapter listenerAdapter(RedisService redisSendService) {
        return new MessageListenerAdapter(redisSendService, "onMessage");
    }

}
4.消费消息
@Service
public class RedisService implements MessageListener {

   @Override
    public void onMessage(Message message, byte[] pattern) {
        try {
             System.out.println("收到消息:"+message.toString());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}
5.发布消息
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
public class RedisServiceTest {

    @Autowired
    private StringRedisTemplate redisTemplate;


    @Test
    public void redisSend() {
        redisTemplate.convertAndSend("Notice", "在知识的海洋里狗刨!!!");
    }

}
结果

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/602736.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号