使用@Cacheable缓存解决双冒号::的问题

网友投稿 275 2022-11-11

使用@Cacheable缓存解决双冒号::的问题

目录@Cacheable缓存解决双冒号::Cacheable的使用总结常规使用方法

@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 getPersonByTagid(Long tagId,String zz)

其中value表示该方法返回的参数的缓存存在那个Cache里(即为缓存块的名字)

缓存结果以一个键值对存放在缓存中,注解中key即为键值对的key;value即为方法返回的结果

key用双引号,里面#加上方法的参数:获取方法的参数, ''表示在参数之间添加分隔符

常规使用方法

在springboot的启动类上使用@EnableCaching//开启缓存sjFWnJVeBw

在方法上直接使用@Cacheable()使用缓存

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:CentOS 7 系统启动引导过程与服务控制(三)(系统服务控制篇)
下一篇:k8s集群中的EFK日志搜集系统
相关文章

 发表评论

暂时没有评论,来抢沙发吧~