由于最近项目中需要使用redis做缓存并修改其失效时间,使用的是springboot2.x来搭建的项目。
看了看网上的一些教程,但是大多数教程都是基于1.x的版本来讲解的,但是springboot2.x之后发生了一些变动,网上找一些资料不太容易。
下面是springboot1.x的版本使用ReidsCacheManager来配置缓存过期时间的方法:
@Bean
public CacheManager cacheManager(RedisTemplate redisTemplate) {
RedisCacheManager rcm = new RedisCacheManager(redisTemplate);
//设置缓存过期时间
Map<String, Long> expires = new HashMap<>();
expires.put("12h", 3600 * 12L);
rcm.setExpires(expires);
// rcm.setDefaultExpiration(60 * 60 * 12);//默认过期时间
return rcm;
}
在springboot2.x中,RedisCacheManager已经没有了单参数的构造方法 以下是springboot2.x版本下 RedisCacheManager的大部分方法
可以发现原来1.x版本的构造方法已经没有了,新的构造方法如图所示。
新的2.x版本修改过期时间代码贴下面:
@Bean
public CacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) {
RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig()
.entryTtl(Duration.ofHours(24)); // 设置缓存有效期24小时
return RedisCacheManager
.builder(RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory))
.cacheDefaults(redisCacheConfiguration).build();
}
上面就是springboot1.x版本及springboot2.x版本下redis缓存失效配置,记录下来,一遍后用!