欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springboot之redis cache TTL選項(xiàng)的使用

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

redis cache TTL 選項(xiàng)設(shè)置

  • 配置項(xiàng): spring.cache.redis.time-to-live
  • 單位: 毫秒
  • 其它取值: java.time.Duration 可以識(shí)別的值
  • 默認(rèn)值: 緩存不過期

獲取 TTL

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

SPRINGBOOT redis cache TTL配置多緩存解決

SPRINGBOOT 緩存的 TTL

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

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

配置多個(gè)RedisCacheManage解決方案

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

不廢話,上代碼。

如果需要和其他系統(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")

需要長期存儲(chǔ)的,使用 默認(rèn)cacheManager即可。

總結(jié)

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

相關(guān)文章

  • spring?controller層引用service報(bào)空指針異常nullpointExceptio問題

    spring?controller層引用service報(bào)空指針異常nullpointExceptio問題

    這篇文章主要介紹了spring?controller層引用service報(bào)空指針異常nullpointExceptio問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • java 實(shí)現(xiàn)音樂播放器的簡單實(shí)例

    java 實(shí)現(xiàn)音樂播放器的簡單實(shí)例

    這篇文章主要介紹了java 實(shí)現(xiàn)音樂播放器的簡單實(shí)例的相關(guān)資料,希望通過本文能幫助到大家,實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-09-09
  • java實(shí)現(xiàn)簡單五子棋小游戲(1)

    java實(shí)現(xiàn)簡單五子棋小游戲(1)

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡單五子棋小游戲的第一部分,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • java selenium使用瀏覽器調(diào)試工具實(shí)現(xiàn)方法

    java selenium使用瀏覽器調(diào)試工具實(shí)現(xiàn)方法

    本文主要介紹java selenium使用瀏覽器調(diào)試工具,這里整理了幾種瀏覽器的調(diào)試方法,有需要的小伙伴可以參考下
    2016-08-08
  • Java創(chuàng)建線程的七種方法總結(jié)(全網(wǎng)最全面)

    Java創(chuàng)建線程的七種方法總結(jié)(全網(wǎng)最全面)

    線程是Java中的基本執(zhí)行單元,它允許程序在同一時(shí)間執(zhí)行多個(gè)任務(wù),下面這篇文章主要給大家總結(jié)介紹了關(guān)于Java創(chuàng)建線程的七種方法,文中通過實(shí)例代碼將這七種方法介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • Spring?Boot自動(dòng)配置的原理及@Conditional條件注解

    Spring?Boot自動(dòng)配置的原理及@Conditional條件注解

    這篇文章主要介紹了Spring?Boot自動(dòng)配置的原理及@Conditional條件注解,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的朋友可以參考一下
    2022-07-07
  • 使用Java應(yīng)用程序添加或刪除 PDF 中的附件

    使用Java應(yīng)用程序添加或刪除 PDF 中的附件

    當(dāng)我們在制作PDF文件或者PPT演示文稿的時(shí)候,為了讓自己的文件更全面詳細(xì),就會(huì)在文件中添加附件,那么如何添加或刪除PDF中的附件呢,今天通過本文給大家詳細(xì)講解,需要的朋友參考下吧
    2023-01-01
  • Spring容器獲取Bean的9種方式總結(jié)

    Spring容器獲取Bean的9種方式總結(jié)

    本文為大家整理匯總了常見的獲取Bean的方式,并提供一些優(yōu)劣分析,方便大家在使用到時(shí)有更好的選擇,同時(shí),也會(huì)為大家適當(dāng)?shù)钠占昂屯卣挂恍┫嚓P(guān)知識(shí),需要的可以參考一下
    2023-07-07
  • 淺談java調(diào)用Restful API接口的方式

    淺談java調(diào)用Restful API接口的方式

    這篇文章主要介紹了淺談java調(diào)用Restful API接口的方式,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • spring boot使用properties定義短信模板的方法教程

    spring boot使用properties定義短信模板的方法教程

    這篇文章主要給大家介紹了關(guān)于spring boot使用properties定義短信模板的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01

最新評(píng)論