만료 시간을 설정하고 구성에서 구성하기 위한 Spring Boot 주석 @Cacheable 사용자 정의 파일 세트 키
Springboot RedisCacheManager 클래스의 구성은 키의 만료 시간을 지정하고 구성 파일에서 구성합니다.
목적과 효과
RedisCache는 springBoot에서 구성됩니다. @Cacheable 주석을 사용하는 경우 기본값은 redisCache입니다. 구성 파일에서 다른 키의 만료 시간을 설정하면 키 만료 시간을 사용자 지정하는 효과를 얻을 수 있습니다.
계획
1 단계
설정할 키를 저장할 새 Map 클래스를 만듭니다.
@ConfigurationProperties
public class Properties {
private final Map<String, Duration> initCaches = Maps.newHashMap();
public Map<String, Duration> getInitCaches() {
return initCaches;
}
}
2 단계
redis 구성 클래스에 cacheManager를 작성하고 여기에 맵 세트를 넣습니다.
@Autowired
private Properties properties;
@Bean
public CacheManager cacheManager(RedisConnectionFactory connectionFactory) {
RedisCacheConfiguration defaultCacheConfig = RedisCacheConfiguration.defaultCacheConfig()
.entryTtl(Duration.ofMinutes(10)).disableCachingNullValues();
RedisCacheWriter redisCacheWriter = RedisCacheWriter.nonLockingRedisCacheWriter(connectionFactory);
ImmutableSet.Builder<String> cacheNames = ImmutableSet.builder();
ImmutableMap.Builder<String, RedisCacheConfiguration> cacheConfig = ImmutableMap.builder();
for (Map.Entry<String, Duration> entry : properties.getInitCaches().entrySet()) {
cacheNames.add(entry.getKey());
cacheConfig.put(entry.getKey(), defaultCacheConfig.entryTtl(entry.getValue()));
}
return RedisCacheManager.builder(redisCacheWriter)
.cacheDefaults(defaultCacheConfig)
.initialCacheNames(cacheNames.build())
.withInitialCacheConfigurations(cacheConfig.build())
.build();
}
3단계
Springboot yml 파일에 해당 키의 만료 시간을 설정하여 @Cacheable 값의 만료 시간을 지정할 수 있습니다.
//Fake code
@Cacheable(cacheNames = "fooboo", key = "#xxx", unless = "#result == null")
public void fooboo(String xxx){}
application.yml 파일에 설정
initCaches:
fooboo: 10m
fooboo1: 1h
그러면 Redis Cache에 있는 fooboo의 값은 10분 후에 만료되고 fooboo1의 값은 1시간 후에 만료됩니다.
Reference
이 문제에 관하여(만료 시간을 설정하고 구성에서 구성하기 위한 Spring Boot 주석 @Cacheable 사용자 정의 파일 세트 키), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/keith5140/springboot-annotation-cacheable-custom-file-set-key-to-set-expiration-time-and-configure-it-in-the-configuration-300o텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)