缓存设置随机过期时间
来源:10-2 项目缓存的设计与准备

精慕门2479394
2024-04-29
老师,您之前提及“Spring @Cacheable是并不支持Expire失效时间的设定的。但是可以通过 使用自定义的RedisCacheManager来实现设置缓存的 ttl,
(解析出@Cacheable的cacheName 中# 后的过期时间,
// #后面是缓存过期时间
@Cacheable(cacheNames = {"testCache#3600"}
@Override
public RPanUser getById(Serializable id) {
return mapper.selectById(id);
}
但是这种方法好像只能作用于 “基于注解的缓存”?手动实现的缓存好像不适用?
- 那么能否 使用自定义的RedisCacheManager的时候,就设置 cacheConfig = cacheConfig.entryTtl(Duration.ofSeconds(“随机的过期时间”)) ?这样就也能适用于 手动缓存?
这个方法是否可行呢?
写回答
2回答
-
RubinChu
2024-04-29
我记得不用太纠结这个,如果特别需要每个缓存一个过期时间,就自己分装缓存的架构,自己定义注解并实现切面是最好的方式。在实现的时候参考spring关于缓存好的设计思想就行
00 -
RubinChu
2024-04-29
设置数据是一次性的,而且看样子你设置的自定义cache manager是一个全局设置,其实没有改变对应每个缓存一个过期时间的不支持的现状。
00
相似问题