您的位置:首页技术文章
文章详情页

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

【字号: 日期:2023-04-24 13:29:48浏览:2作者:猪猪

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

1、Spring Boot整合redis 参考

https://www.jb51.net/article/170687.htm

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

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

Linux安装redis:https://www.jb51.net/article/193265.htm

Windows安装redis:https://www.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;@Componentpublic 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);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持好吧啦网。

标签: Spring
相关文章: