摘要:的使用過(guò)程中,刪除緩存只能用具體的刪除,不能使用通配符號(hào),原因是不支持這種通配符用法,可以通過(guò)修改源代碼實(shí)現(xiàn),但這種方式修改了本身代碼,后期升級(jí)維護(hù)不好操作,具體操作方式可以參見命令支持正則刪除地址我們使用改寫實(shí)現(xiàn)具體實(shí)現(xiàn)方式為改寫
spring cache redis的使用過(guò)程中,刪除緩存只能用具體的key刪除,不能使用通配符號(hào),原因是redis不支持del key這種通配符用法,可以通過(guò)修改redis源代碼實(shí)現(xiàn),但這種方式修改了redis本身代碼,后期升級(jí)、維護(hù)不好操作,具體操作方式可以參見:
redis del命令支持正則刪除(pattern)
git地址:redis-del-with-pattern
我們使用改寫spring-redis cache實(shí)現(xiàn)
具體實(shí)現(xiàn)方式為:
改寫:org.springframework.data.redis.cache.RedisCache下的evict方法
原為:cacheWriter.remove(name, createAndConvertCacheKey(key));
改為:cacheWriter.clean(name, createAndConvertCacheKey(key));
spring redis最底層是支持了通配符的方式的,但是經(jīng)過(guò)包裝后就去掉了
具體在項(xiàng)目中的使用實(shí)例如:
在查詢方法上加入緩存:
@Override @Cacheable(keyGenerator = "cacheKeyGenerator") public List query(xx x) throws IllegalAccessException { return xxxx; }
其中cacheKeyGenerator生成如
com.demo.service.impl.xxServiceImpl-query-99986a
刪除或更新時(shí):
@Override @CacheEvict(key = "targetClass.name+"-*"") public boolean saveOrUpdate(xx x) { return xxxx; }
其中key時(shí)spEL表達(dá)式,生成 com.demo.service.impl.xxServiceImpl-*的key
最終效果是在新增或更新時(shí)能刪除所有列表的緩存key
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/62080.html
摘要:特點(diǎn)具備相當(dāng)?shù)暮玫撵`活性,不僅能夠使用來(lái)定義緩存的和各種,還提供開箱即用的緩存臨時(shí)存儲(chǔ)方案,也支持和主流的專業(yè)緩存例如的集成。其中號(hào)代表這是一個(gè)表達(dá)式,此表達(dá)式可以遍歷方法的參數(shù)對(duì)象,具體語(yǔ)法可以參考的相關(guān)文檔手冊(cè)。 SpringBoot 是為了簡(jiǎn)化 Spring 應(yīng)用的創(chuàng)建、運(yùn)行、調(diào)試、部署等一系列問(wèn)題而誕生的產(chǎn)物,自動(dòng)裝配的特性讓我們可以更好的關(guān)注業(yè)務(wù)本身而不是外部的XML配置,...
摘要:特點(diǎn)具備相當(dāng)?shù)暮玫撵`活性,不僅能夠使用來(lái)定義緩存的和各種,還提供開箱即用的緩存臨時(shí)存儲(chǔ)方案,也支持和主流的專業(yè)緩存例如的集成。其中號(hào)代表這是一個(gè)表達(dá)式,此表達(dá)式可以遍歷方法的參數(shù)對(duì)象,具體語(yǔ)法可以參考的相關(guān)文檔手冊(cè)。 SpringBoot 是為了簡(jiǎn)化 Spring 應(yīng)用的創(chuàng)建、運(yùn)行、調(diào)試、部署等一系列問(wèn)題而誕生的產(chǎn)物,自動(dòng)裝配的特性讓我們可以更好的關(guān)注業(yè)務(wù)本身而不是外部的XML配置,...
摘要:前言如題,今天介紹的數(shù)據(jù)緩存。說(shuō)明確實(shí)做了數(shù)據(jù)緩存,第二次的測(cè)試結(jié)果是從數(shù)據(jù)緩存中獲取的,并沒(méi)有直接查數(shù)據(jù)庫(kù)。為為的數(shù)據(jù)做了緩存插入數(shù)據(jù)返回的結(jié)果數(shù)據(jù)庫(kù)中的結(jié)果訪問(wèn)結(jié)果如下圖。后語(yǔ)以上為數(shù)據(jù)緩存的教程。 微信公眾號(hào):一個(gè)優(yōu)秀的廢人如有問(wèn)題或建議,請(qǐng)后臺(tái)留言,我會(huì)盡力解決你的問(wèn)題。 前言 如題,今天介紹 SpringBoot 的數(shù)據(jù)緩存。做過(guò)開發(fā)的都知道程序的瓶頸在于數(shù)據(jù)庫(kù),我們也知道內(nèi)...
閱讀 511·2023-04-26 00:33
閱讀 3538·2021-11-24 09:39
閱讀 2899·2021-09-22 15:34
閱讀 2316·2019-08-23 18:07
閱讀 2912·2019-08-23 18:04
閱讀 3694·2019-08-23 16:06
閱讀 2893·2019-08-23 15:27
閱讀 1614·2019-08-23 14:32