软件编程
位置:首页>> 软件编程>> java编程>> SpringBoot如何整合redis实现过期key监听事件

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

作者:yvioo  发布时间:2023-08-04 18:51:19 

标签:SpringBoot,redis,key,监听

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

1、Spring Boot整合redis 参考

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

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

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

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

来源:https://www.cnblogs.com/pxblog/p/13559317.html

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com