Redis Key 过期事件监听
Redis Key 过期事件监听
通过监听对过期Key做业务处理
redis 开启key过期通知
修改redis server 配置文件,开启keyt过期听通知配置
notify-keyspace-events Ex
配置类
@Configuration
public class RedisConfig {
@Bean
public RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory) {
RedisMessageListenerContainer container = new RedisMessageListenerContainer();
container.setConnectionFactory(connectionFactory);
return container;
}
}
监听类
@Component
public class RedisExpiredListener extends KeyExpirationEventMessageListener {
private static final String ORDER_PREFIX = "Order:";
public RedisExpiredListener(RedisMessageListenerContainer listenerContainer) {
super(listenerContainer);
}
@Override
public void onMessage(Message message, byte[] pattern) {
//获取失效的key
String expiredKey = message.toString();
if (expiredKey.startsWith(ORDER_PREFIX)) {
//如果是Order:开头的key,消费Key
LOGGER.info("消费Key:{}", message);
//someService.findDataByKey(key);
//do something ...
}
}
}