Spring @Cacheable默认ttl
我通常@Cacheable
在spring-boot应用程序中将其与缓存配置结合使用,并为每个缓存设置特定的TTL(生存时间)。
我最近继承了一个spring boot应用程序,该应用程序使用时@Cacheable
未明确说明缓存管理器和ttl。我将其更改为明确。
但是,当没有明确的内容时,我无法找出默认值。
我确实看过文档,但那里什么也没找到
回答:
spring 为核心解释的是关于TTL / TTI(过期),并驱逐策略很清楚 Spring框架参考指南
这里。换句话说,“默认值”完全取决于通过 Spring Cache
Abstraction 与 Spring Boot 应用程序一起使用的基础数据存储(aka缓存提供程序)。 __
尽管
解决方案是一个不错的解决方法,并且是跨不同缓存提供程序(数据存储区)的通用可转移解决方案,但它也无法涵盖更具体的到期/收回策略,例如到期/收回时执行的操作(例如OVERFLOW_TO_DISK),或仅LOCAL_DESTROY(例如在高可用性(可能基于分区),分布式方案中)或INVALIDATE等。
通常,根据UC,逐出“所有”条目是不可接受的选择,并且是 Spring
将此责任委托给缓存提供程序的原因之一,因为此功能在一个提供程序与另一个提供程序之间差异很大。
总结…绝对要查看您的UC的要求,并将适当的缓存提供程序与适合您UC的功能配对。
从Redis到Apache
Geode / Pivotal GemFire到
Hazelcast 等, Spring 支持各种各样的缓存提供程序,每一个在这方面都具有不同/相似的功能。 __
以上是 Spring @Cacheable默认ttl 的全部内容, 来源链接: utcz.com/qa/427049.html