SpringBoot如何整合redis實(shí)現(xiàn)過(guò)期key監(jiān)聽(tīng)事件
可以用于簡(jiǎn)單的過(guò)期訂單取消支付、7天自動(dòng)收貨場(chǎng)景中
1、Spring Boot整合redis 參考
https://www.jb51.net/article/170687.htm
2、打開(kāi)redis服務(wù)的配置文件添加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 添加如下內(nèi)容
@Bean RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory) { RedisMessageListenerContainer container = new RedisMessageListenerContainer(); container.setConnectionFactory(connectionFactory); return container; }
4、新建過(guò)期Key監(jiān)聽(tīng)
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;@Componentpublic class RedisKeyExpirationListener extends KeyExpirationEventMessageListener { public RedisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) { super(listenerContainer); } /** * 針對(duì) redis 數(shù)據(jù)失效事件,進(jìn)行數(shù)據(jù)處理 * * @param message * @param pattern */ @Override public void onMessage(Message message, byte[] pattern) { System.out.println('過(guò)期'+message.toString()); }}
使用方式
//把key放進(jìn)redis中,并設(shè)置過(guò)期時(shí)間為三秒,也可以按照自己的寫法redisService.set(key,key, 3);
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 詳解盒子端CSS動(dòng)畫性能提升2. XML入門的常見(jiàn)問(wèn)題(四)3. ASP中if語(yǔ)句、select 、while循環(huán)的使用方法4. CSS3實(shí)例分享之多重背景的實(shí)現(xiàn)(Multiple backgrounds)5. SharePoint Server 2019新特性介紹6. 告別AJAX實(shí)現(xiàn)無(wú)刷新提交表單7. 使用css實(shí)現(xiàn)全兼容tooltip提示框8. Vue+elementUI下拉框自定義顏色選擇器方式9. ASP中常用的22個(gè)FSO文件操作函數(shù)整理10. XML入門的常見(jiàn)問(wèn)題(一)
