如何在Play Framework 2.3.X中手动删除缓存元素?

时间:2014-08-25 16:07:49

标签: caching playframework-2.3

我使用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是​​不可能的?

1 个答案:

答案 0 :(得分:2)

您可以使用已关联的文档中的Cache.remove(key)

 import play.api.cache.Cache

 Cache.remove("categories")

Play默认使用EhCache,这是一个内存缓存,实际上只适用于单机部署。您可以将其替换为另一个缓存插件,例如play2 memcached