springboot如何配置redis有效时间,以及如何配置读取后更新有效时间有效时间和读取后更新有效时间不在代码中写,在配置文件写
时间: 2024-11-27 21:11:27 浏览: 0
Spring Boot 配置 Redis 的过期时间通常是在RedisTemplate或者JedisConnectionFactory等相关的配置中进行。以下是一个简单的示例:
1. 使用`@EnableCaching`启用缓存管理:
```java
@SpringBootApplication
@EnableCaching
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
```
2. 配置RedisTemplate:
```yaml
spring:
redis:
host: localhost
port: 6379
# 这里可以设置默认的过期时间
cache:
time-to-live: 300000 # 设置默认5分钟,单位毫秒
# 如果你想针对特定的key设置不同的过期时间,可以在代码中这样做:
@Autowired
private StringRedisTemplate stringRedisTemplate;
stringRedisTemplate.opsForValue().set("myKey", "value", 60*60); // 设置key"myKey"过期时间为1小时
```
3. 对于`@Cacheable`注解,它会在读取缓存时自动计算并设置新的TTL:
```java
@Service
public class MyService {
@Cacheable(value = "cacheName", key = "#id", condition = "#result == null")
public Object fetchDataWithAutoTTL(@PathVariable Long id) {
// 获取数据操作
return result;
}
// 当fetchDataWithAutoTTL被调用且结果未在缓存中找到时,会自动设置新的TTL
}
```
在这个例子中,如果`fetchDataWithAutoTTL`的结果为空,那么获取到的数据将会被缓存,并基于你的业务需求设置一个自定义的时间长度。
阅读全文