编辑
Circumflex 访问ehcache 的 getKeys,因此应该可以在 Play 中执行类似操作,前提是 Cache 插件实现公开了 getKeys,这可能是不可能的(假设每个 Cache 库都提供了一种查询缓存中所有键的方法)
ORIGINAL 有没有办法通过 EhCache 的键前缀删除缓存条目?
我正在使用默认使用 EhCache 的 Play 框架的缓存实现。
查看 Play 2 Scala Cache.scala 我看到了一个删除方法,它需要一个字符串,即要删除的键,但我想知道 EhCache 本身是否支持按前缀删除(如果是这样,我将向 Play 开发人员提出 2.1 快照的功能请求)
就目前而言,我正在使用一种辅助方法,该方法采用常用缓存键列表并删除匹配项:
object clear {
def apply(key: String, keys: List[String] = List()) = {
if(keys.size > 0) keys.filter(_.startsWith(key)) map(Cache.remove(_))
else Cache.remove(key)
}
}
但是与将任何键前缀直接传递给 Cache remove 相比,维护固定键列表是愚蠢的