SpringBoot过期key监听 SpringBoot怎样整合redis实现过期key监听事件
yvioo 人气:0想了解SpringBoot怎样整合redis实现过期key监听事件的相关内容吗,yvioo在本文为您仔细讲解SpringBoot过期key监听的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:SpringBoot,redis,过期key,监听事件,下面大家一起来学习吧。
可以用于简单的过期订单取消支付、7天自动收货场景中
1、Spring Boot整合redis 参考
2、打开redis服务的配置文件添加notify-keyspace-events Ex 如果是注释了,就取消注释
Linux安装redis:https:
Windows安装redis:https:
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);
加载全部内容