Redis过期定时任务
1.编辑配置文件conf
notify-keyspace-events Ex
2.重启redis
3.确定好监听的数据库号,如0
4.通过客户端进入redis,设置如下:
PSUBSCRIBE __keyevent@0__:expired
5.在springboot配置文件中加上需要监听的数据库
spring:
redis:
host: 127.0.0.1
port: 6379
database1: 0
database2: 1
6.增加监听类
@Component
public class RedisKeyExpirationListener extends KeyExpirationEventMessageListener {
public RedisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {
super(listenerContainer);
}
@Override
public void onMessage(Message message, byte[] pattern) {
String expireKey = message.toString();
System.out.println("过期key:" + expireKey);
}
}
7.增加配置文件
@Configuration
public class RedisListenerConfig {
@Autowired
private RedisConnectionFactory redisConnectionFactory;
public RedisListenerConfig(RedisConnectionFactory redisConnectionFactory) {
this.redisConnectionFactory = redisConnectionFactory;
}
@Bean
public RedisMessageListenerContainer container() {
RedisMessageListenerContainer container = new RedisMessageListenerContainer();
container.setConnectionFactory(redisConnectionFactory);
return container;
}
}
8.启动服务即可