KeyExpirationEventMessageListener监听redis的key过期,jedisKey过期监听
首先需要一个类继承KeyExpirationEventMessageListener,重写父类onMessage方法以及生成一个构造方法,不生成构造是要报错的,当监听到Key过期时,会自动调用该方法,还有需要装配一个RedisMessageListenerContainer对象到spring容器里面,redis配置一下notify-keyspace-events “Ex”下面会附上代码监听类添加r
·
redisKey过期监听,适用于redis jedis的key过期监听,可以实现订单到期关闭或其他功能,也是在网上找了很多文章发现没有一个写的清楚的
首先需要一个类继承KeyExpirationEventMessageListener,重写父类onMessage方法以及生成一个构造方法,不生成构造是要报错的,当监听到Key过期时,会自动调用该方法,还有需要装配一个RedisMessageListenerContainer对象到spring容器里面,redis配置一下
notify-keyspace-events “Ex”
下面会附上代码
// 需要装配该对象
@Bean
public RedisMessageListenerContainer redisMessageListenerContainer(RedisConnectionFactory factory) {
RedisMessageListenerContainer container = new RedisMessageListenerContainer();
container.setConnectionFactory(factory);
return container;
}
监听类
@Component
@Slf4j
public class RedisKeyExpireListener extends KeyExpirationEventMessageListener {
public RedisKeyExpireListener(RedisMessageListenerContainer listenerContainer) {
super(listenerContainer);
}
@Override
public void onMessage(Message message, byte[] pattern) {
String key = message.toString().replace("\"", "");
log.info("监听到Key过期:{}", key);
}
}
添加redis
设置过期时间
运行后
更多推荐
已为社区贡献1条内容
所有评论(0)