使用@Cacheable缓存解决双冒号::的问题
程序员文章站
2022-03-24 08:07:09
目录@cacheable缓存解决双冒号::cacheable的使用总结常规使用方法@cacheable缓存解决双冒号::使用spring-data-redis2.x版本时,@cacheable缓存ke...
使用spring-data-redis2.x版本时,@cacheable缓存key值时默认会给vlue或cachenames后加上双引号
通过配置进行修改即可满足项目需求
@configuration public class springcacheconfig{ @bean public cachemanager cachemanager(lettuceconnectionfactory lettuceconnectionfactory){ rediscacheconfiguration config = rediscacheconfiguration.defaultcacheconfig() .entryttl(duration.ofhour(1) //变双冒号为单冒号 .computeprefixwith(name - >":") .serializekeyswith(redisserializationcontext.serializationpair.fromserializer(new stringredisserializer())) .serializevalueswith(redisserializationcontext.serializationpair.fromserializer(new genericjackson2jsonredisserializer())) .disablecachingnullvalues(); rediscachemanager cachemanager = rediscachemanager.rediscachemanagerbuilder .fromconnectionfactory(lettuceconnectionfactory) .cachedefaults(config) .transactionaware() .build(); return cachemanager; } ...其他配置 }
cacheable的使用总结
@cacheable(value = "person",key = "#tagid+'_'+#zz") public list<person> getpersonbytagid(long tagid,string zz)
其中value表示该方法返回的参数的缓存存在那个cache里(即为缓存块的名字)
缓存结果以一个键值对存放在缓存中,注解中key即为键值对的key;value即为方法返回的结果
key用双引号,里面#加上方法的参数:获取方法的参数, ''表示在参数之间添加分隔符
常规使用方法
在springboot的启动类上使用@enablecaching//开启缓存
在方法上直接使用@cacheable()使用缓存
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
推荐阅读
-
PHP使用Memcache时模拟命名空间及缓存失效问题的解决
-
jQuery中ajax的使用与缓存问题的解决方法
-
详解使用双缓存解决Canvas clearRect引起的闪屏问题
-
@Cacheable缓存解决双冒号::问题
-
SpringCache @Cacheable 在同一个类中调用方法,导致缓存不生效的问题及解决办法
-
Redis使用元素删除的布隆过滤器来解决缓存穿透问题
-
使用@Cacheable缓存解决双冒号::的问题
-
PHP使用Memcache时模拟命名空间及缓存失效问题的解决_PHP
-
PHP使用Memcache时模拟命名空间及缓存失效问题的解决_php实例
-
C#中使用CreateParams的ExStyle拓展双缓冲解决界面刷新缓慢与闪烁问题