Redis CacheManager 2.0设置缓存过期时间变动

Spring Data Redis 2.0

参考文档:Spring Data Redis 2.1.0 Document

原因

SpringBoot:2.0.4
因为业务需要使用Spring Cache作为缓存。而我在百度找到的结果都是2.0之前的,Spring Data Redis的CacheManager的实现RedisCacheManager发生了很大变动,配置无法向下兼容,以下是2.0之前的配置。

@Bean
public RedisCacheManager cacheManager(RedisTemplate redisTemplate) {
    RedisCacheManager cacheManager = new CustomizeRedis(redisTemplate);
    cacheManager.setUsePrefix(false);
    cacheManager.setDefaultExpiration(60);
    return cacheManager;
}

修改

  1. 我在Spring Data Redis 2.1.0 Document文档中无意发现发生了改变。

    2.0 RedisCacheManager change

  2. SpringBoot 2.0.4使用的Spring Data Redis version


    SpringBoot 2.0.4
  3. 修改后

@Bean
public CacheManager cacheManager(@Autowired RedisConnectionFactory connectionFactory) {
      return RedisCacheManager
            .builder(connectionFactory)
            .cacheDefaults(RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofMinutes(5)))
            .transactionAware()
            .build();
    }

过期时间就生效了


Redis TTL

你可能感兴趣的:(Redis CacheManager 2.0设置缓存过期时间变动)