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

2021-03-31 18:26

阅读:745

标签:redis   str   收货   打开   http   过期   sage   技术   not   

 

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

 

1、Spring Boot整合redis 参考

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

 

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

技术图片

 

 

 

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

 

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

标签:redis   str   收货   打开   http   过期   sage   技术   not   

原文地址:https://www.cnblogs.com/pxblog/p/13559317.html


评论


亲,登录后才可以留言!