redis key過期監(jiān)聽的實(shí)現(xiàn)示例
更新時(shí)間:2024年03月19日 09:05:43 作者:劉小僧
在Redis中,我們可以為Key設(shè)置過期時(shí)間,當(dāng)Key的過期時(shí)間到達(dá)后,Redis會(huì)自動(dòng)將該Key標(biāo)記為已失效,本文就來介紹一下redis key過期監(jiān)聽的實(shí)現(xiàn)示例,感興趣的可以了解一下
1、pom.xml文件中添加redis依賴
<!-- redis 緩存操作 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
2、application.yml文件中添加redis相關(guān)配置
# redis 配置 redis: # 地址 host: localhost # 端口,默認(rèn)為6379 port: 6379 # 數(shù)據(jù)庫(kù)索引 database: 0 # 密碼 password: # 連接超時(shí)時(shí)間 timeout: 10s lettuce: pool: # 連接池中的最小空閑連接 min-idle: 0 # 連接池中的最大空閑連接 max-idle: 8 # 連接池的最大數(shù)據(jù)庫(kù)連接數(shù) max-active: 8 # #連接池最大阻塞等待時(shí)間(使用負(fù)值表示沒有限制) max-wait: -1ms
3、redis配置類RedisConfig中注冊(cè)Bean–RedisMessageListenerContainer
@Configuration @EnableCaching public class RedisConfig extends CachingConfigurerSupport { /** * redis key 過期事件訂閱需要 * @param redisConnectionFactory * @return */ @Bean public RedisMessageListenerContainer redisMessageListenerContainer(RedisConnectionFactory redisConnectionFactory) { RedisMessageListenerContainer container = new RedisMessageListenerContainer(); container.setConnectionFactory(redisConnectionFactory); return container; } }
4、自定義redis key過期監(jiān)聽器,繼承KeyExpirationEventMessageListener類
@Component public class RedisKeyExpirationListener extends KeyExpirationEventMessageListener { @Autowired private StringRedisTemplate stringRedisTemplate; public RedisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) { super(listenerContainer); } @Override public void onMessage(Message message, byte[] pattern) { //注意:只能獲取失效的key值,獲取不到key對(duì)應(yīng)的value值的。 String expireKey = message.toString(); try { if (!StringUtils.isEmpty(expireKey)) { //具體處理邏輯...... } } catch (Exception e) { e.printStackTrace(); } } }
到此這篇關(guān)于redis key過期監(jiān)聽的解決方法的文章就介紹到這了,更多相關(guān)redis key過期監(jiān)聽內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:
相關(guān)文章
redis實(shí)現(xiàn)簡(jiǎn)單分布式鎖
這篇文章主要介紹了redis實(shí)現(xiàn)簡(jiǎn)單分布式鎖,文中通過代碼示例講解的非常詳細(xì),需要的朋友可以參考下2013-09-09Redis與本地緩存的結(jié)合實(shí)現(xiàn)
我們開發(fā)中經(jīng)常用到Redis作為緩存,本文主要介紹了Redis與本地緩存的結(jié)合實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07Redis?Lua腳本實(shí)現(xiàn)ip限流示例
這篇文章主要介紹了Redis?Lua腳本實(shí)現(xiàn)ip限流示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07