当前位置: 首页 > 知识库问答 >
问题:

Spring缓存:驱逐多个缓存

濮阳品
2023-03-14

我使用Spring缓存抽象,定义了多个缓存。有时,当数据更改时,我想逐出多个缓存。是否可以使用Spring的CacheExit注释逐出多个缓存?

共有2个答案

柯曜文
2023-03-14

保持紧凑:您可以通过在cacheexecute注释中枚举多个缓存来逐出它们:

@CacheEvict(value = { "cache1", "cache2" }, allEntries = true)
陈文景
2023-03-14

您可以这样做:

@Caching(evict = {
    @CacheEvict("primary"),
    @CacheEvict(value = "secondary", key = "#p0")
})

查看参考了解详细信息

 类似资料:
  • 嗨,我在执行方法时遇到清理缓存的问题。这是我的配置和缓存方法: 我要缓存的这个方法: 在执行此方法时,我希望按类型清理缓存: 新闻消息对象看起来像: 缓存工作正常,第一次查询DB时,第二次从缓存中提取数据。问题是当我更新数据时,@CacheEvict不会清理缓存。我试图使用以下注释清理所有缓存:@cacheexit(cacheNames={CacheConfiguration.RSS\u NEWS

  • 我有一个关于内存系统遵循的策略的基本问题。 考虑一个具有私有L1和L2缓存的核心。在L2缓存之后,我们有一个相干流量运行的总线。现在,如果从L2高速缓存中逐出地址(X)的高速缓存行,是否有必要从L1高速缓存中逐出该地址?? 逐出的原因可能是它有助于保持一致性协议的不变[如果l2中的一行显示无效,则此核心不包含此地址]。

  • 我试图使用和实现以下缓存逻辑: 如果过期时间已经过去,条件(需要计算和I/O)被评估为TRUE,然后强制获取数据并更新缓存。 如果过期时间已经过去,条件(需要计算和I/O)被计算为FALSE,那么不要使缓存数据无效,并从缓存中检索值。 如果过期时间未过,则从缓存中检索该值。 我按照这个指南工作:https://www.baeldung.com/spring-boot-caffeine-cache

  • CodeIgniter 提供了几种最常用的快速缓存的封装,除了基于文件的缓存, 其他的缓存都需要对服务器进行特殊的配置,如果配置不正确,将会抛出 一个致命错误异常(Fatal Exception)。 使用示例 类参考 驱动器 可选 PHP 缓存(APC) 基于文件的缓存 Memcached 缓存 WinCache 缓存 Redis 缓存 虚拟缓存(Dummy Cache) 使用示例 下面的示例代码

  • 在我的项目中,我使用了一个@Cacheable注释ia一个服务方法,它返回涉及书籍和一些标记的计算结果,我想在一个@Controller类方法中退出缓存,该方法将一本新书添加到数据库中,因为这本新书将是新计算所必需的。 服务类:@Cacheable("metas") 控制器类:@RequestMapping@CacheEvict(value=“metas”,allEntries=true)

  • 我想为Spring Cache执行以下操作。 > 检查传递的字符串是否存在于缓存中。如果存在,则返回true,如果不存在,则添加到缓存;checkInCache(字符串str) 从缓存逐出字符串(String str) 尝试如下 @组件公共类FlightCache{ 并在配置类上添加了@EnableCaching注释。 错误: