Spring Boot 缓存 TTL

tat*_*ead 5 java spring caching abstraction spring-boot

我想使用 Spring Boot Cache Abstraction 来缓存一些数据(https://docs.spring.io/spring/docs/current/spring-framework-reference/html/cache.html)。

我愿意使用任何可用的提供商。

我需要的主要内容是:我希望能够设置对象级别 TTL,而不仅仅是全局缓存级别 TTL。

例如,对于我存储在缓存中的每个对象,我想根据该对象的某些属性为该对象指定一个自定义 TTL

我知道要设置这样的东西,必须直接通过缓存提供程序来完成;但我无法找到我的用例的示例 - 只找到设置全局 TTL 的用例。有人可以帮忙吗?

cru*_*tex 1

您需要检查可用于 Spring boot 的不同缓存实现的功能。

支持基于条目值的变量过期,对缓存实现的内部结构及其性能有影响。对于变量到期,您通常需要 O(log n) 的数据结构。例如Guava和Caffeine就不支持。EHCache 确实支持它,请参阅有关 expiry 的文档

所请求的功能“超出”了 Spring 抽象,这意味着您需要为一种特定的缓存实现生成代码。