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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。