美文网首页
redis Springboot实现Redis事件订阅

redis Springboot实现Redis事件订阅

作者: dylan丶QAQ | 来源:发表于2020-09-17 09:50 被阅读0次

    起因:随着项目的进一步推广,数据量的增大,直接访问mysql数据库获取数据所使用的时间越来越长,为解决当前主要矛盾,决定引入redis非关系型数据库作为缓存层,使得数据并不能直接命中数据库,减少访问数据库带来的压力,从而加快运行速度。


    1. Springboot实现Redis事件订阅

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
    

    yaml

    spring:
      redis:
        host: 127.0.0.1
        port: 6379
        password: pwd
    

    监听器

    import com.icodingedu.service.MessageReceiver;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.data.redis.connection.RedisConnectionFactory;
    import org.springframework.data.redis.listener.PatternTopic;
    import org.springframework.data.redis.listener.RedisMessageListenerContainer;
    import org.springframework.data.redis.listener.adapter.MessageListenerAdapter;
    
    @Configuration
    public class RedisMessageConfig {
    
        @Bean
        RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory, MessageListenerAdapter listenerAdapter){
            RedisMessageListenerContainer container = new RedisMessageListenerContainer();
            container.setConnectionFactory(connectionFactory);
            //订阅channel
            container.addMessageListener(listenerAdapter,new PatternTopic("__keyevent@*__:expired"));
            return container;
        }
    
        @Bean
        MessageListenerAdapter listenerAdapter(MessageReceiver receiver){
            return new MessageListenerAdapter(receiver,"receiveMessage");
        }
    }
    

    监听结构输出

    import org.springframework.stereotype.Service;
    
    @Service
    public class MessageReceiver {
        //接收消息的方法
        public void receiveMessage(String message){
            System.out.println(message);
        }
    }
    

    不要以为每天把功能完成了就行了,这种思想是要不得的,互勉~!

    相关文章

      网友评论

          本文标题:redis Springboot实现Redis事件订阅

          本文链接:https://www.haomeiwen.com/subject/iracyktx.html