vir*_*yes 1 ehcache prefix playframework-2.0
EDIT
Circumflex访问ehcache的getKeys,因此如果Cache插件实现暴露了getKeys,那么应该可以在Play中执行类似操作,这可能是不可能的(假设每个Cache库都提供了查询缓存中所有键的方法)
ORIGINAL 有没有办法通过EhCache的键前缀删除缓存条目?
我正在使用Play框架的缓存实现,它默认使用EhCache.
看看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)
}
}
Run Code Online (Sandbox Code Playgroud)
但是,与将任何密钥前缀直接传递给Cache remove相比,维护固定密钥列表是愚蠢的
根据EHCache插件,您还可以直接访问EHCache,只需使用CacheManager.create()静态方法:
net.sf.ehcache.Cache cache = net.sf.ehcache.CacheManager.create().getCache("play");
Run Code Online (Sandbox Code Playgroud)
create()如果存在,则该方法返回现有实例.
| 归档时间: |
|
| 查看次数: |
1060 次 |
| 最近记录: |