SpringBoot整合redis实现过期key监听事件 - yvioo - 博客园

Spring整合redis实现key过期事件监听:https://www.cnblogs.com/pxblog/p/13969375.html

可以用于简单的过期订单取消支付、7天自动收货场景中

1、Spring Boot整合redis 参考

https://www.cnblogs.com/pxblog/p/12980634.html

2、打开redis服务的配置文件   添加notify-keyspace-events Ex  如果是注释了,就取消注释

 然后重启redis

Linux安装redis:https://www.cnblogs.com/pxblog/p/12225758.html

Windows安装redis:https://www.cnblogs.com/pxblog/p/13370729.html

3、在redis配置类 @Configuration 添加如下内容

复制代码; "复制代码")

@Bean

RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory) {
    RedisMessageListenerContainer container = new RedisMessageListenerContainer();
    container.setConnectionFactory(connectionFactory); return container;
}

复制代码; "复制代码")

4、新建过期Key监听

RedisKeyExpirationListener.java

复制代码; "复制代码")

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

} /** \* 针对 redis 数据失效事件,进行数据处理
 \*
 \* @param message
 \* @param pattern */ @Override public void onMessage(Message message, byte\[\] pattern) {
    System.out.println("过期"+message.toString());
}

}

复制代码; "复制代码")

使用方式

//把key放进redis中,并设置过期时间为三秒,也可以按照自己的写法
redisService.set(key,key, 3);


原网址: 访问
创建于: 2021-02-04 17:10:27
目录: default
标签: 无

请先后发表评论
  • 最新评论
  • 总共0条评论