目录
@cacheable缓存解决双冒号::
使用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()使用缓存
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。