redis过期key事件处理
一、需求
- 设置过期时间key,在过期时能不能有所提示
- 如果能对过期Key有个监听,如何对过期Key进行一个回调处理?
- 如何使用 Redis 来实现定时任务?
二、实现
创建监听类
@Component
public class RedisKeyExpirationListener extends KeyExpirationEventMessageListener {
public RedisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {
super(listenerContainer);
}
/**
* 针对redis数据失效事件,进行数据处理
* @param message
* @param pattern
*/
/**
* 针对redis数据失效事件,进行数据处理
* @param message
* @param pattern
*/
@Override
public void onMessage(Message message, byte[] pattern) {
//message.toString()可以获取失效的key
String expiredKey = message.toString();
if(expiredKey.startsWith("key:prefix")){
/**
* TODO
* 如果是自己想要监控的KEY, 则可以在这里处理业务
*/
}
System.out.println(expiredKey);
}
}
修改redis配置
notify-keyspace-events Ex 这个配置解开