一、创建监听配置类 RedisListenerConfig。
package com.example.redisdemo.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.listener.RedisMessageListenerContainer;
@Configuration
public class RedisListenerConfig {
@Bean
public RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory) {
RedisMessageListenerContainer container = new RedisMessageListenerContainer();
container.setConnectionFactory(connectionFactory);
return container;
}
}
二、 创建监听器: RedisKeyExpirationListener 继承 KeyExpirationEventMessageListener .
这里只能获取到 过期的key,无法获取过期的value.
package com.example.redisdemo.redisListen;
import org.springframework.data.redis.connection.Message;
import org.springframework.data.redis.listener.KeyExpirationEventMessageListener;
import org.springframework.data.redis.listener.RedisMessageListenerContainer;
import org.springframework.stereotype.Component;
@Component
public class RedisKeyExpirationListener extends KeyExpirationEventMessageListener {
public RedisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {
super(listenerContainer);
}
//拿到过期key的信息并做处理
@Override
public void onMessage(Message message, byte[] pattern) {
String key = message.toString();
System.out.println("过期的KEY是: " + key);
}
}
三、在redis中创建测试数据,并设置过期时间
待key过期,控制台打印过期key信息: