我使用Play 2.3.3创建了我的Web应用程序。这是我的控制器中的一个方法:
@Cached(key = "categories", duration = 3600)
public static Result index() throws ApiException {
// Stuff read from database here
return ok(MyView.render(data));
}
我的问题是如何手动从缓存中删除categories
元素以强制重新生成?例如,当我在数据库中添加类别时,我不想等待缓存过期以使其对我的用户可见。
我在文档中找不到任何内容:https://playframework.com/documentation/2.3.x/JavaCache
缓存存储在RAM中,文件系统中的某个地方也是如此? 感谢。
编辑:理想情况下,我想连接到我的服务器,浏览到目录并删除该文件。我想EHCache是不可能的?
答案 0 :(得分:2)
您可以使用已关联的文档中的Cache.remove(key)
。
import play.api.cache.Cache
Cache.remove("categories")
Play默认使用EhCache,这是一个内存缓存,实际上只适用于单机部署。您可以将其替换为另一个缓存插件,例如play2 memcached。