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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM