使用@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<Person> getPersonByTagid(Long tagId,String zz)
其中value表示該方法返回的參數(shù)的緩存存在那個Cache里(即為緩存塊的名字)
緩存結果以一個鍵值對存放在緩存中,注解中key即為鍵值對的key;value即為方法返回的結果
key用雙引號,里面#加上方法的參數(shù):獲取方法的參數(shù), ''表示在參數(shù)之間添加分隔符
常規(guī)使用方法
在springboot的啟動類上使用@EnableCaching//開啟緩存
在方法上直接使用@Cacheable()使用緩存
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
java IO流 之 輸入流 InputString()的使用
這篇文章主要介紹了java IO流 之 輸入流 InputString()的使用,以及讀取數(shù)據(jù)的三種方式詳解,非常不錯,需要的朋友可以參考下2016-12-12
spring使用WebSocket注入service層失敗問題及解決
這篇文章主要介紹了spring使用WebSocket注入service層失敗問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-07-07
springboot打war包部署到外置tomcat容器的方法
這篇文章主要介紹了springboot]打war包部署到外置tomcat容器,在這需要注意的是在boot-launch.war在tomcat?webapps目錄里面解壓到boot-launch文件夾,感興趣的朋友跟隨小編一起看看吧2022-04-04
springboot Actuator的指標監(jiān)控可視化功能詳解
SpringBoot Actuator是springboot為簡化我們對微服務項目的監(jiān)控功能抽取出來的模塊,使得我們每個微服務快速引用即可獲得生產(chǎn)界別的應用監(jiān)控、審計等功能。這篇文章主要介紹了springboot Actuator的指標監(jiān)控可視化,需要的朋友可以參考下2021-08-08

