最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot之redis cache TTL選項的使用

 更新時間:2023年07月26日 08:54:37   作者:sayyy  
這篇文章主要介紹了springboot之redis cache TTL選項的使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

redis cache TTL 選項設置

  • 配置項: spring.cache.redis.time-to-live
  • 單位: 毫秒
  • 其它取值: java.time.Duration 可以識別的值
  • 默認值: 緩存不過期

獲取 TTL

@Service
public class xxx {
?? ?@Autowired
?? ?private CacheProperties cacheProperties;
?? ?public void xxx() {
?? ??? ?Duration ttl = this.cacheProperties.getRedis().getTimeToLive();
?? ??? ?if (null == ttl) {
?? ??? ??? ?// 未獲取到ttl,按照默認值處理
?? ??? ?} else {
?? ??? ??? ?// 獲取到ttl
?? ??? ??? ?// ttl.getSeconds()
?? ??? ?}
?? ?}
}

SPRINGBOOT redis cache TTL配置多緩存解決

SPRINGBOOT 緩存的 TTL

Spring為了兼容多Cache,注解@Cacheable沒有直接TTL參數(shù)。

  • springboot 配置文件可以全局配置TTL
  • 可以用@CacheEvict配合@Schedule清理
  • 可以自定義RedisCacheManage,指定TTL

配置多個RedisCacheManage解決方案

可以簡單配置2個redis cache,一個指定固定TTL,一個長期緩存。

不廢話,上代碼。

如果需要和其他系統(tǒng)公用緩存,用Jackson的RedisSerializer,這里直接jdk的序列化。

@Configuration
public class CacheConfig {
? ? @Bean
? ? public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
? ? ? ? RedisTemplate<String, Object> template = new RedisTemplate<>();
? ? ? ? template.setConnectionFactory(factory);
? ? ? ? template.setKeySerializer(new StringRedisSerializer());
? ? ? ? template.setHashKeySerializer(new StringRedisSerializer());
? ? ? ? template.setValueSerializer(new JdkSerializationRedisSerializer());
? ? ? ? template.setHashValueSerializer(new JdkSerializationRedisSerializer());
? ? ? ? return template;
? ? }
? ? @Bean(name = "RedisCacheManagerWithTTL")
? ? public RedisCacheManager cacheManagerWithTTL(RedisConnectionFactory factory) {
? ? ? ? RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig()
? ? ? ? ? ? ? ? .entryTtl(Duration.ofMinutes(2))
? ? ? ? ? ? ? ? .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer()))
? ? ? ? ? ? ? ? .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new JdkSerializationRedisSerializer()))
? ? ? ? ? ? ? ? .disableCachingNullValues();
? ? ? ? RedisCacheManager.RedisCacheManagerBuilder builder = RedisCacheManager.RedisCacheManagerBuilder.fromConnectionFactory(factory);
? ? ? ? return builder.transactionAware().cacheDefaults(config).build();
? ? }
? ? @Bean
? ? @Primary
? ? public RedisCacheManager cacheManager(RedisConnectionFactory factory) {
? ? ? ? RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig()
? ? ? ? ? ? ? ? .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer()))
? ? ? ? ? ? ? ? .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new JdkSerializationRedisSerializer()))
? ? ? ? ? ? ? ? .disableCachingNullValues();
? ? ? ? RedisCacheManager.RedisCacheManagerBuilder builder = RedisCacheManager.RedisCacheManagerBuilder.fromConnectionFactory(factory);
? ? ? ? return builder.transactionAware().cacheDefaults(config).build();
? ? }
}

使用

如果需要TTL,使用注解

@Cacheable(cacheNames = "YOUR:CACHE:NAME", cacheManager = "RedisCacheManagerWithTTL")

或者類上使用

@CacheConfig(cacheManager = "RedisCacheManagerWithTTL")

需要長期存儲的,使用 默認cacheManager即可。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • springboot如何設置請求參數(shù)長度和文件大小限制

    springboot如何設置請求參數(shù)長度和文件大小限制

    這篇文章主要介紹了springboot如何設置請求參數(shù)長度和文件大小限制,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • 深入Spring Boot實現(xiàn)對Fat Jar jsp的支持

    深入Spring Boot實現(xiàn)對Fat Jar jsp的支持

    這篇文章主要介紹了深入Spring Boot實現(xiàn)對Fat Jar jsp的支持,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • 妙解Java中的回調(diào)機制(CallBack)

    妙解Java中的回調(diào)機制(CallBack)

    本文以最簡明扼要的例子將Java的回調(diào)機制介紹給大家,感興趣的朋友可以參考一下。
    2016-07-07
  • mybatis plus 關聯(lián)數(shù)據(jù)庫排除不必要字段方式

    mybatis plus 關聯(lián)數(shù)據(jù)庫排除不必要字段方式

    這篇文章主要介紹了mybatis plus 關聯(lián)數(shù)據(jù)庫排除不必要字段方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • java 如何復制非空對象屬性值

    java 如何復制非空對象屬性值

    這篇文章主要介紹了java 如何復制非空對象屬性值的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java字符串的基礎用法解讀

    Java字符串的基礎用法解讀

    本文將帶您深入了解?Java?字符串的特性、用法以及一些高級技巧,幫助您在編程實踐中更加得心應手,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-05-05
  • Java StringBuilder類相關知識總結(jié)

    Java StringBuilder類相關知識總結(jié)

    這篇文章主要介紹了Java StringBuilder類相關知識總結(jié),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • Java中斷言(assert)的使用場景與注意事項

    Java中斷言(assert)的使用場景與注意事項

    文章詳細介紹了Java斷言(assert)的使用方法、適用場景及注意事項,斷言是一種調(diào)試工具,用于開發(fā)和測試階段快速定位代碼邏輯錯誤,但非業(yè)務級校驗,不應用于對外接口、業(yè)務容錯等場景,應嚴格區(qū)分斷言與常規(guī)異常,避免濫用,確保代碼質(zhì)量和生產(chǎn)環(huán)境穩(wěn)定性
    2026-05-05
  • MyBatis中的JdbcType映射使用介紹

    MyBatis中的JdbcType映射使用介紹

    這篇文章主要介紹了MyBatis中的JdbcType映射使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Java MethodHandle的使用詳解

    Java MethodHandle的使用詳解

    這篇文章主要介紹了Java MethodHandle的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-05-05

最新評論

成武县| 子长县| 玉屏| 道孚县| 五指山市| 固安县| 商丘市| 青阳县| 砚山县| 和平区| 湘乡市| 五寨县| 布尔津县| 安图县| 海口市| 基隆市| 汕尾市| 富川| 昆山市| 太湖县| 大英县| 临夏县| 平果县| 家居| 隆德县| 上林县| 孝昌县| 孝昌县| 五常市| 涿鹿县| 栾川县| 新宾| 古交市| 彩票| 石门县| 枝江市| 桃园县| 社旗县| 中宁县| 当阳市| 定安县|