缓存设置随机过期时间

来源: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关于缓存好的设计思想就行

0
0

RubinChu

2024-04-29

设置数据是一次性的,而且看样子你设置的自定义cache manager是一个全局设置,其实没有改变对应每个缓存一个过期时间的不支持的现状。

0
0

SpringBoot+Vue3+Element Plus打造私人分布式存储系统

SpringBoot+Vue3+Element Plus 仿百度网盘实战

274 学习 · 347 问题

查看课程