当前位置: 首页 > 面试题库 >

可以为@Cacheable设置TTL吗

魏英勋
2023-03-14
问题内容

我正在尝试@Cacheable对Spring 3.1 的注释支持,并且想知道是否有任何方法可以通过设置TTL在一段时间后清除缓存的数据?现在,从我看到的内容中,我需要使用@CacheEvict和自己清除它,并与@Scheduled我一起使用可以实现TTL实现,但是对于这样一个简单的任务来说似乎有点多了吗?


问题答案:

如何设置TTL / TTI /驱逐策略/ XXX功能

直接通过你的缓存提供程序。缓存抽象是…好吧,抽象不是缓存实现

因此,如果你使用EHCache,请使用EHCache的配置来配置TTL。

你还可以使用Guava的CacheBuilder来构建缓存,并将该缓存的ConcurrentMap视图传递给ConcurrentMapCacheFactoryBean的setStore方法。



 类似资料:
  • 问题内容: 我正在尝试对Spring 3.1 的批注支持,并且想知道是否有任何方法可以通过设置TTL在一段时间后清除缓存的数据?现在,从我看到的内容中,我需要使用和自己清除它,并与我一起使用可以实现TTL实现,但是对于这样一个简单的任务来说似乎有点多了吗? 问题答案: 参见http://static.springsource.org/spring/docs/3.1.x/spring-framewo

  • 问题内容: 我可以在Redis中设置全局TTL吗?每次设置密钥时,都无需设置TTL。 我用谷歌搜索,但找不到任何线索。看来似乎无法完成? 谢谢。 问题答案: 不,Redis没有全局/默认TTL的概念,是的,您必须为每个键分别设置它。但是,根据您的要求和要执行的操作,可能还有其他方法可以实现您的目标。换句话说,您为什么需要它? 例如,如果您想将Redis用作缓存,而不必担心必须删除“旧”项目,则只需

  • 我想使用redis as缓存我的远程服务请求:响应键:使用@cacheable注释的值对 理想情况下,“ttl”应该是@Cacheable注释的属性,但由于并非所有缓存都支持键特定的ttl,spring可能没有包含ttl属性。 据我所知,spring建议让不同的org.springframework.cache.cacheManager实例具有不同的过期时间,但考虑到redis已经可以为单个客户机

  • 是否可以配置Spring,以便在缓存未命中时,对可缓存方法的调用将被阻止,直到可缓存方法执行一次并填充缓存? 在我的例子中,我处理的是数据库中的数据,这些数据不会经常更改。事实上,如果这些数据更改,则需要重新启动应用程序。我可以创建方法,并在每个服务启动时初始化数据,但这似乎不像注释那样“优雅”。 我计划将EhCache与Spring注释一起使用。 更新: 以下是我在尝试使用@PostConstr

  • 我如何设置信封上的TTL由受限制收件人签名? 我搜索了并搜索了StackOverflow。令人惊讶的是,我看到了Docusign可以说信封已过期的引用,但我没有看到如何设置信封的过期时间。 在我的测试中,我生成了一堆我寄给自己的信封,但我没有签名。Docusign不断发送有关它们的提醒。现在从信封生成到现在已经2天了。我不想让客户在他们应该签字后很久才收到关于它的电子邮件。 我的意图是将它们从我的

  • 我试图完成的是为缓存设置TTL(生存时间)和TTI(空闲时间),以便密钥在TTL时间之后过期,或者在TTI期间未被访问的情况下可以提前过期。 在Ehcache 2中,可以使用以下配置: 在Ehcache 3中,类似的配置块如下所示: 问题是这样的配置被认为是无效的,因为ehcache.xsd声明在< code>expiry标记下应该只有一个选项(或者是< code>tti或者是< code>ttl