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

 

Spring整合redis实现key过期事件监听:https://www.cnblogs.com/pxblog/p/13969375.html

 

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

 

1、Spring Boot整合redis 参考

https://www.cnblogs.com/pxblog/p/12980634.html

 

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

 

 然后重启redis

 

 

Linux安装redis:https://www.cnblogs.com/pxblog/p/12225758.html

Windows安装redis:https://www.cnblogs.com/pxblog/p/13370729.html

 

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

 

posted @   yvioo  阅读(3505)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示