Spring @Cacheable默认ttl

我通常@Cacheable在spring-boot应用程序中将其与缓存配置结合使用,并为每个缓存设置特定的TTL(生存时间)。

我最近继承了一个spring boot应用程序,该应用程序使用时@Cacheable未明确说明缓存管理器和ttl。我将其更改为明确。

但是,当没有明确的内容时,我无法找出默认值。

我确实看过文档,但那里什么也没找到

回答:

spring 为核心解释的是关于TTL / TTI(过期),并驱逐策略很清楚 Spring框架参考指南

这里。换句话说,“默认值”完全取决于通过 Spring Cache

AbstractionSpring 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

回到顶部