我正在使用 Java 17 / Spring,这个 application.yml 运行良好。 问题是我需要为每个缓存设置不同的生存时间:
缓存 1 需要 10 秒
cache2 为 20 秒
spring:
cache:
cache-names: cache1, cache2
type: redis
redis:
time-to-live: 10s
key-prefix: rop
use-key-prefix: true
cache-null-values: false
enable-transaction-support: false
data:
redis:
url:redis://localhost:6379
我已经尝试过该文件的一些变体,但没有一个有效。 有什么线索吗?预先感谢!
我在这个link
找到了解决方案这是帮助我的代码:
@Bean (name="cacheManager")
public RedisCacheManager cacheManager(RedisConnectionFactory connectionFactory) {
RedisCacheConfiguration conf_1_info = RedisCacheConfiguration.defaultCacheConfig()
.entryTtl(Duration.ofMinutes(10));
RedisCacheConfiguration conf_2_info = RedisCacheConfiguration.defaultCacheConfig()
.entryTtl(Duration.ofMinutes(30));
Map<String, RedisCacheConfiguration> cacheConfigurations = new HashMap<String, RedisCacheConfiguration>();
cacheConfigurations.put("cache1", conf_1_info);
cacheConfigurations.put("cache2", conf_2_info);
return RedisCacheManager.RedisCacheManagerBuilder.fromConnectionFactory(connectionFactory)
.withInitialCacheConfigurations(cacheConfigurations).build();
}