美文网首页
redis监听key失效,单机下出现重复调用

redis监听key失效,单机下出现重复调用

作者: 菊地尤里 | 来源:发表于2021-04-21 10:46 被阅读0次

    redis config文件开启监听器开关 ,打开notify-keyspace-events Ex

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-redis</artifactId>
    <version>1.5.9.RELEASE</version>
    </dependency>
    
    <dependency>
      <groupId>org.springframework.data</groupId>
      <artifactId>spring-data-commons</artifactId>
      <version>1.13.7.RELEASE</version>
    </dependency>
    
    @Component
    public class RedisListenerConfig {
    
        @Bean
        public RedisMessageListenerContainer container(RedisConnectionFactory redisConnectionFactory) {
            RedisMessageListenerContainer container = new RedisMessageListenerContainer();
            container.setConnectionFactory(redisConnectionFactory);
            return container;
        }
    
    
    //不应该再用bean添加监听器,否则出现重复并且同时调用监听
    
    }
    
    @Component
    public class RedisKeyExpirationListener extends KeyExpirationEventMessageListener {
    
    //监听
        public RedisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {
            super(listenerContainer);
        }
    
        /**
         * 针对redis数据失效事件,进行数据处理
         * @param message
         * @param pattern
         */
        @Override
        public void onMessage(Message message, byte[] pattern) {
            // 用户做自己的业务处理即可,注意message.toString()可以获取失效的key
            String expiredKey = message.toString();
            System.out.println(expiredKey);
        }
    }
    
    

    相关文章

      网友评论

          本文标题:redis监听key失效,单机下出现重复调用

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