@CacheEvict 清除多個(gè)key的實(shí)現(xiàn)方式
借用@Caching實(shí)現(xiàn)
入?yún)⑹腔绢?lèi)型的:
@Caching(evict={@CacheEvict(value = Cache.CONSTANT, key = "'" + CacheKey.SINGLE_ROLE_NAME + "'+#roleId"), @CacheEvict(value = Cache.CONSTANT, key = "'" + CacheKey.ROLES_NAME + "'+#roleId"), @CacheEvict(value = Cache.CONSTANT, key = "'" + CacheKey.SINGLE_ROLE_NAME + "'+#roleId")}) public ResponseData remove(@RequestParam Long roleId) { ……………… }
入?yún)⑹菍?duì)象的:
@Caching(evict={@CacheEvict(value = Cache.CONSTANT, key = "'" + CacheKey.SINGLE_ROLE_NAME + "'+#roleDto.roleId"), @CacheEvict(value = Cache.CONSTANT, key = "'" + CacheKey.ROLES_NAME + "'+#roleDto.roleId"), @CacheEvict(value = Cache.CONSTANT, key = "'" + CacheKey.SINGLE_ROLE_NAME + "'+#roleDto.roleId")}) public ResponseData edit(RoleDto roleDto) { this.roleService.editRole(roleDto); return SUCCESS_TIP; }
補(bǔ)充:@CacheEvict 模糊刪除緩存問(wèn)題-RedisTemplate 模糊key刪除緩存
緩存管理使用注解形式,非常方便了我們的使用,然而今天我想 使用 @CacheEvict 的實(shí)和key 進(jìn)行 模糊刪除,發(fā)現(xiàn) @CacheEvict 貌似不支持這樣的操作,然后想起 RedisTemplate 好像支持 key的模糊匹配。
于是,方法有了
既然@CacheEvict做不到,那就用 RedisTemplate
第一步:
獲取key
這里的key就是 : user:role* 這樣的
Set<Object,Object> keys = redisTemplate.keys( key );
第二步:
判斷 keys 非空,然后進(jìn)行刪除
if (CollectionUtils.isNotEmpty(keys)) { redisTemplate.delete(keys); }
總結(jié):
刪除緩存的時(shí)候,如果 keys 是空的,則沒(méi)有反應(yīng),因?yàn)椴榭丛创a可知,redisTemplate 幫你判斷了,如果是 空的則 return
此處也有可能刪不掉,刪不掉很可能就是 key 的序列化問(wèn)題
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
你可能真沒(méi)用過(guò)這些 IDEA 插件(建議收藏)
IDEA 全稱(chēng) IntelliJ IDEA,是java編程語(yǔ)言開(kāi)發(fā)的集成環(huán)境。IntelliJ在業(yè)界被公認(rèn)為最好的java開(kāi)發(fā)工具。這篇文章主要介紹 IDEA 必用插件的安裝及用法,需要的朋友可以參考下2020-08-08Java實(shí)現(xiàn)斷點(diǎn)下載服務(wù)端與客戶(hù)端的示例代碼
這篇文章主要為大家介紹了如何實(shí)現(xiàn)服務(wù)端(Spring Boot)與客戶(hù)端(Android)的斷點(diǎn)下載與下載續(xù)傳功能,文中的示例代碼講解詳細(xì),需要的可以參考一下2022-08-08JPA配置方式+逆向工程映射到Entity實(shí)體類(lèi)
這篇文章主要介紹了JPA配置方式+逆向工程映射到Entity實(shí)體類(lèi),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11struts2入門(mén)(搭建環(huán)境、配置、示例)詳解
這篇文章主要介紹了struts2入門(mén)(搭建環(huán)境、配置、示例)詳解,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12Mybatis實(shí)現(xiàn)Mapper動(dòng)態(tài)代理方式詳解
這篇文章主要為大家詳細(xì)介紹了Mybatis實(shí)現(xiàn)Mapper動(dòng)態(tài)代理方式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08Netty的Handler鏈調(diào)用機(jī)制及如何組織詳解
這篇文章主要為大家介紹了Netty的Handler鏈調(diào)用機(jī)制及如何組織示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03