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;
}

图片.png

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 业务逻辑
        }
	}
}

图片.png