我想使用Spring Boot Cache Abstraction来缓存一些数据(https://docs.spring.io/spring/docs/current/spring-framework-reference/html/cache.html)。我可以使用任何可用的提供商。
我需要的主要是:我希望能够设置对象级别TTL,而不仅仅是全局缓存级别TTL。
E.g。对于我存储在缓存中的每个对象,我想根据该对象的某些属性为对象指定自定义TTL 。
我知道要设置这样的东西,必须直接通过缓存提供程序完成。但是我无法找到我的用例示例 - 只找到了设置全局TTL的用例。有人可以帮忙吗?
答案 0 :(得分:1)
如果您正在使用redis,可以查看JetCache:
@Cached(expire = 10, timeUnit = TimeUnit.MINUTES)
User getUserById(long userId);
答案 1 :(得分:0)
您需要查看可用于Spring启动的不同缓存实现的功能。
基于条目值支持变量到期,对缓存实现的内部及其性能有影响。在变量到期时,通常需要一个O(log n)数据结构。例如,番石榴和咖啡因不支持它。 EHCache确实支持它,请参阅Documentation about expiry。
请求的功能“超出”Spring抽象,这意味着,您需要为一个特定的缓存实现生成代码。