SpringBoot如何整合redis實現過期key監聽事件
阿新 • • 發佈:2020-09-16
可以用於簡單的過期訂單取消支付、7天自動收貨場景中
1、Spring Boot整合redis 參考
https://www.jb51.net/article/170687.htm
2、開啟redis服務的配置檔案新增notify-keyspace-events Ex 如果是註釋了,就取消註釋
Linux安裝redis:https://www.jb51.net/article/193265.htm
Windows安裝redis:https://www.jb51.net/article/176040.htm
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);
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。