SpringBoot入门二十七,监听Redis过期事件
  TEZNKK3IfmPf 2023年11月14日 25 0

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

SpringBoot入门二十七,监听Redis过期事件

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

SpringBoot入门二十七,监听Redis过期事件

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   26天前   23   0   0 dataredis
  TEZNKK3IfmPf   26天前   20   0   0 awkredis
TEZNKK3IfmPf