SpringBoot监听Redis的Key失效,并执行回调方法

修改Redis配置文件redis.conf,将notify-keyspace-events Ex配置项解开注释,第1075行左右。
在这里插入图片描述
Redis监听配置类

@Configuration
public class RedisListenConfig {
    @Bean
    RedisMessageListenerContainer container(RedisConnectionFactory factory){
        RedisMessageListenerContainer container=new RedisMessageListenerContainer();
        container.setConnectionFactory(factory);
        return container;
    }
}

监听带key失效的回调方法

@Component
public class KeyExpiredListener extends KeyExpirationEventMessageListener {

    public KeyExpiredListener(RedisMessageListenerContainer listenerContainer) {
        super(listenerContainer);
    }
    /**
     * 使用该方法监听,当Redis的key失效的时候执行该方法
     */
    @Override
    public void onMessage(Message message, byte[] pattern) {
        //过期的key
      String expireKey=message.toString();
        System.out.println("该key已经失效 = " + expireKey);
    }
}

编写测试类,添加一个key到Redsi中

    @Test
    public void redisKeyExpireListen(){
       String key="userId";
       redisTemplate.opsForValue().set(key,"001",1, TimeUnit.MINUTES);
    }

结果
在这里插入图片描述