zoukankan      html  css  js  c++  java
  • Spring Boot中使用redis的发布/订阅模式

    redis不仅是一个非常强大的非关系型数据库,它同时还拥有消息中间件的pub/sub功能,在spring boot中进行如下设置就可以使用redis的pub/sub功能:

    1.创建redis监听的设置类

    @Configuration
    public class RedisSubListenerConfig {
       //初始化监听器
        @Bean
        RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory,
                MessageListenerAdapter listenerAdapter) {
            RedisMessageListenerContainer container = new RedisMessageListenerContainer();
            container.setConnectionFactory(connectionFactory);
            container.addMessageListener(listenerAdapter, new PatternTopic("这里是监听的通道的名字"));
            return container;
        }
       //利用反射来创建监听到消息之后的执行方法
        @Bean
        MessageListenerAdapter listenerAdapter(RedisReceiver redisReceiver) {
            return new MessageListenerAdapter(redisReceiver, "receiveMessage");
        }
      
      //使用默认的工厂初始化redis操作模板 @Bean StringRedisTemplate template(RedisConnectionFactory connectionFactory) { return new StringRedisTemplate(connectionFactory); } }

    2.创建监听之后的receiver方法类

    @Service
    public class RedisReceiver {
        @Autowired
        RedisService redisService;
    
        public void receiveMessage(String message) {
            //这里是收到通道的消息之后执行的方法
        }
    }

    3.使用reidsTemplate向通道发送消息

    @Service
    public class RedisService {
        @Autowired
        private StringRedisTemplate stringRedisTemplate;
      //向通道发送消息的方法
        public void sendChannelMess(String channel, String message) {
            stringRedisTemplate.convertAndSend(channel, message);
        }
    }

    附:有些设置在RedisReceiver接受类构造器中传入了CountDownLatch来控制线程,如果不需要控制线程可以不用。

    上述内容如有不正之处,还望不吝指教!
    版权声明:本文为博主原创文章,转载请注明出处!
  • 相关阅读:
    appium自动化测试搭建
    How to install Qt Creator on Ubuntu 18.04
    Luci
    OpenWrt 根文件系统启动过程分析
    shell 杂烩
    OpenWrt Luci 调试日志输出的一种方法
    jQuery实现购物车计算价格的方法
    js实现购物车添加,减少数量
    golang-键盘录入数据
    JAVA存储机制(栈、堆、方法区详解)
  • 原文地址:https://www.cnblogs.com/meetzy/p/7986956.html
Copyright © 2011-2022 走看看