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

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

可以用于简单的过期订单取消支付、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

标签:SpringBoot,redis,key,监听
0
投稿

猜你喜欢

  • java编写ftp下载工具

    2022-03-15 08:15:13
  • Java之Jackson的基本使用案例讲解

    2022-05-27 22:08:49
  • C/C++ 左移<<, 右移>>的作用及说明

    2021-12-30 01:42:59
  • Spring中@Scheduled和HttpClient的连环坑

    2023-10-19 23:06:00
  • java8 利用reduce实现将列表中的多个元素的属性求和并返回操作

    2021-09-29 06:53:38
  • MyBatis-Plus解决逻辑删除与唯一索引的问题

    2022-09-09 00:17:03
  • Silverlight将图片转换为byte的实现代码

    2022-03-07 11:07:15
  • Java 生产者/消费者问题实例详解

    2023-02-26 01:23:36
  • Android sdutio配置Zxing进行扫码功能的实现方法

    2023-12-12 15:40:13
  • java创建多级目录文件的实例讲解

    2023-11-27 09:29:02
  • Java基于外观模式实现美食天下食谱功能实例详解

    2022-08-22 22:59:51
  • Java转JSON串的几种方式

    2023-08-24 07:38:47
  • C#多线程学习之(二)操纵一个线程的方法

    2022-02-27 08:53:27
  • 一篇文章带你搞定JAVA内存泄漏

    2022-04-28 21:07:08
  • C++类中六个默认的成员函数详解

    2022-11-25 10:46:30
  • Linux CentOS 7.0中java安装与配置环境变量的步骤详解

    2021-11-15 12:31:34
  • Android ViewDragHelper使用方法详解

    2022-08-27 02:01:28
  • VSCode中开发JavaWeb项目的详细过程(Maven+Tomcat+热部署)

    2022-10-18 14:42:10
  • Springboot整合Shiro的代码实例

    2021-09-03 04:16:52
  • 深入浅析Mybatis的缺陷问题

    2023-07-19 19:39:46
  • asp之家 软件编程 m.aspxhome.com