redis过期回调方法

springboot配置

@Configuration
public class RedisListenerConfig {
    @Bean
    RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory) {

        RedisMessageListenerContainer container = new RedisMessageListenerContainer();
        container.setConnectionFactory(connectionFactory);
        return container;
    }
}

插入值,设置过期时间

String uploadKey = "这是自定义的key_LANSHAN";
RedisClient redisClient = SpringUtils.getBean(RedisClient.class);
//插入缓存
redisClient.set(uploadKey,"123456");
//设置缓存过期时间为10秒
redisClient.expire(uploadKey, 10);

Redis失效事件 key

@Component
public class RedisKeyExpirationListener extends KeyExpirationEventMessageListener {
 
    @Override
    public void onMessage(Message message, byte[] pattern) {
        try{
          String expiredKey = message.toString();//获取所有key
          //以下是你想执行的代码逻辑
          if(expiredKey.endsWith("_LANSHAN")){//判断后缀是否为'_LANSHAN'
              System.err.print("我得到的key:"+expiredKey);
          }
	     }catch (Exception e){
	         e.printStackTrace();
	     }
 
    }
}

你可能感兴趣的:(redis,缓存,java)