springboot2.x 的 RedisCacheManager变化

原文:https://blog.****.net/Mirt_/article/details/80934312

springboot2.x 的 RedisCacheManager变化


由于最近在学着使用redis做缓存,使用的是springboot2.x来搭建的项目。 
看了看网上的一些教程,但是大多数教程都是基于1.x的版本来讲解的,但是springboot2.x之后发生了一些变动,网上想找一些资料不太容易。

springboot配置缓存过期时间,网上大部分资料是使用ReidsCacheManager来进行自定义的配置 
以下是大部分网上的代码(这也是基于springboot1.x的版本可以使用的)

@Bean
public CacheManager cacheManager(RedisTemplate redisTemplate) {
    RedisCacheManager cacheManager= new RedisCacheManager(redisTemplate);
    cacheManager.setDefaultExpiration(60);
    Map<String,Long> expiresMap=new HashMap<>();
    expiresMap.put("Product",5L);
    cacheManager.setExpires(expiresMap);
    return cacheManager;
}

然而在springboot2.x中,RedisCacheManager已经没有了单参数的构造方法 
以下是springboot2.x版本下 RedisCacheManager的大部分方法 

springboot2.x 的 RedisCacheManager变化
可以发现原来1.x版本的构造方法已经没有了,新的构造方法如图所示。 
本人没有看1.x的源码,我发现这里有一个RedisCacheManagerBuilder的内部类,从名字就不难发现这是一个用来构造RedisCacheManager的建造模式的应用吧。 
所以以下是本人使用的RedisCacheManager的构造方法(如果定制化要求的话可以修改其中的配置就可以),这里我只设置了缓存失效时间为一小时,如需其他配置可以到RedisCacheConfiguration这个类中去寻找一下。

@Bean
    public CacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) {
        RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig()
                .entryTtl(Duration.ofHours(1)); // 设置缓存有效期一小时
        return RedisCacheManager
                .builder(RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory))
                .cacheDefaults(redisCacheConfiguration).build();
    }

以上就是本人对springboot2.x 配置redis缓存失效时间的笔记,希望能对一些刚刚使用springboot2.x的人们有些帮助。
--------------------- 
作者:Mirt_ 
来源:**** 
原文:https://blog.****.net/Mirt_/article/details/80934312 
版权声明:本文为博主原创文章,转载请附上博文链接!