内容简介:spring cache redis的使用过程中,删除缓存只能用具体的key删除,不能使用通配符git地址:
spring cache redis的使用过程中,删除缓存只能用具体的key删除,不能使用通配符 号,原因是 redis 不支持del key 这种通配符用法,可以通过修改redis源代码实现,但这种方式修改了redis本身代码,后期升级、维护不好操作,具体操作方式可以参见:
git地址: redis-del-with-pattern
我们使用改写spring-redis cache实现
具体实现方式为:
改写:org.springframework.data.redis.cache.RedisCache下的evict方法
原为: cacheWriter.remove(name, createAndConvertCacheKey(key));
改为: cacheWriter.clean(name, createAndConvertCacheKey(key));
spring redis最底层是支持了通配符的方式的,但是经过包装后就去掉了
具体在项目中的使用实例如:
在查询方法上加入缓存:
@Override
@Cacheable(keyGenerator = "cacheKeyGenerator")
public List query(xx x) throws IllegalAccessException {
return xxxx;
}
其中cacheKeyGenerator生成如
com.demo.service.impl.xxServiceImpl-query-99986a
删除或更新时:
@Override
@CacheEvict(key = "targetClass.name+'-*'")
public boolean saveOrUpdate(xx x) {
return xxxx;
}
其中key时spEL表达式,生成 com.demo.service.impl.xxServiceImpl-*
的key
最终效果是在新增或更新时能删除所有列表的缓存key
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Linux 下按照文件大小查找文件
- Clipboard Rule – 按照粘贴板内容操作[Windows]
- 按照umi + dva 发现不触发reducers的问题
- canvas绘图按照contain或者cover方式适配,并居中显示
- 按照这些优化技巧来写 SQL,连公司 DBA 也鼓掌称赞!
- NodeJS:将文件夹按照存放路径变成一个对应的JSON
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
产品心经:产品经理应该知道的60件事(第2版)
闫荣 / 机械工业出版社 / 2016-4 / 69.00
本书第一版出版后广获好评,应广大读者要求,作者把自己在实践中新近总结的10个关于产品的最佳实践融入到了这本新书中。这"10件事"侧重于深挖产品需求和产品疯传背后的秘密,配合之前的"50件事",不仅能帮产品经理打造出让用户尖叫并疯传的产品,还能帮助产品经理迅速全方位提升自己的能力。 本书作者有超过10年的产品工作经验,在互联网产品领域公认的大咖,这本书从产品经理核心素养、产品认知、战略与规划、......一起来看看 《产品心经:产品经理应该知道的60件事(第2版)》 这本书的介绍吧!