SpringBoot如何整合redis实现过期key监听事件

网友投稿 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小时内删除侵权内容。

上一篇:基于IntelliJ IDEA的类注释和方法注释操作
下一篇:两个小例子轻松搞懂 java 中递归与尾递归的优化操作
相关文章

 发表评论

暂时没有评论,来抢沙发吧~