java中的接口是类吗
327
2022-11-22
SpringBoot如何整合redis实现过期key监听事件
可以用于简单的过期订单取消支付、7天自动收货场景中
1、Spring Boot整合redis 参考
https://jb51.net/article/170687.htm
2、打开redis服务的配置文件添加notify-keyspace-events Ex 如果是注释了,就取消注释
linux安装redis:https://jb51.net/article/193265.htm
Windowshttp://安装redis:https://jb51.net/article/176040.htm
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);
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~