Spring Cache:驱逐多个缓存
Posted
技术标签:
【中文标题】Spring Cache:驱逐多个缓存【英文标题】:Spring Cache: Evict multiple caches 【发布时间】:2014-10-12 07:06:08 【问题描述】:我正在使用 Spring Cache 抽象,并且定义了多个缓存。有时,当数据发生变化时,我想驱逐多个缓存。
是否可以使用 Spring 的 @CacheEvict
注释来驱逐多个缓存?
【问题讨论】:
【参考方案1】:你可以这样做:
@Caching(evict =
@CacheEvict("primary"),
@CacheEvict(value = "secondary", key = "#p0")
)
查看Reference了解详情
【讨论】:
如果 1 是 @CachePut 而另一个是 @CacheEvict 怎么办?【参考方案2】:保持简洁:您可以通过在@CacheEvict
注解中枚举多个缓存来驱逐多个缓存:
@CacheEvict(value = "cache1", "cache2" , allEntries = true)
【讨论】:
好吧,假设您希望将相同的附加参数 (allEntries = true
) 应用于您指定的所有缓存。根据我的经验,这种情况并不常见。
你会如何处理使用这种语法的键?
可以提到这样的键@CacheEvict(value = "cache1", "cache2" , key = "key")
以上是关于Spring Cache:驱逐多个缓存的主要内容,如果未能解决你的问题,请参考以下文章
apollo-cache-inmemory 的驱逐规则是啥?