【发布时间】:2018-12-05 21:02:35
【问题描述】:
我在 springboot2.0 中使用 @cacheable 和 redis。我已将 RedisCacheManager 配置如下:
@Bean
public RedisCacheManager redisCacheManager(RedisConnectionFactory connectionFactory) {
RedisCacheWriter redisCacheWriter = RedisCacheWriter.lockingRedisCacheWriter(connectionFactory);
SerializationPair<Object> valueSerializationPair = RedisSerializationContext.SerializationPair
.fromSerializer(new GenericJackson2JsonRedisSerializer());
RedisCacheConfiguration cacheConfiguration = RedisCacheConfiguration.defaultCacheConfig();
cacheConfiguration = cacheConfiguration.serializeValuesWith(valueSerializationPair);
cacheConfiguration = cacheConfiguration.prefixKeysWith("myPrefix");
cacheConfiguration = cacheConfiguration.entryTtl(Duration.ofSeconds(30));
RedisCacheManager redisCacheManager = new RedisCacheManager(redisCacheWriter, cacheConfiguration);
return redisCacheManager;
}
但是这使得所有key的ttl为30秒,如何为每个redis缓存配置不同的ttl并使用不同的cachename?
【问题讨论】:
-
我想我已经通过使用不同的 bean 名称配置不同的 RedisCacheManager 来解决这个问题。现在一切看起来都很好
-
@c-y-in-sof 你可以回答你自己的问题
标签: spring-boot caching redis