Springboot整合Redis可以参考==> 《SpringBoot入门二十三,整合Redis》,我们就在这个基础上来进行新的操作
1. 添加配置文件
Redis配置文件中添加以下内容
/**
* <h5>描述:用于监听redis相关事件</h5>
*
* @param connectionFactory
* @return
*/
@Bean
RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory) {
RedisMessageListenerContainer container = new RedisMessageListenerContainer();
container.setConnectionFactory(connectionFactory);
return container;
}
2. 创建过期Key监听
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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;
/**
* <h5>描述:Redis的key过期事件监听</h5>
*
*/
@Component
public class RedisExpiredKeyListener extends KeyExpirationEventMessageListener {
private final Logger log = LoggerFactory.getLogger(this.getClass());
public RedisExpiredKeyListener(RedisMessageListenerContainer listenerContainer) {
super(listenerContainer);
}
/**
* 接收Redis的key过期事件通知
*/
@Override
public void onMessage(Message message, byte[] pattern) {
String expiredKey = message.toString(); // 获取过期的key
log.info("指定的 Redis key [{}] 过期", message.toString());
if (expiredKey.contains("aa")) { // 判断是否是想要监听的过期key
log.info("指定的 Redis key [{}] 过期", message.toString());
// TODO 业务逻辑
}
}
}