caching - Grails为什么我的缓存失效了?

标签 caching grails gorm

我在grails应用程序中缓存了一些域实例和查询。我希望在第一次将查询激发到db之后,后续调用只会命中缓存。
但是,我看到查询周期性地命中db(每5-6次之后)。同时,没有数据被更新/插入数据库。我正在使用p6spy来检查所有已记录的查询,并且看不到任何更新或插入。

我每周还需要其他设置吗?

目前网域类别有

static mapping = {
cach true
}

findBy*这样的查询都有[cache:true]设置。

最佳答案

如果您未配置Ehcache,则您的缓存将使用默认的120秒超时。请参阅http://ehcache.org/ehcache.xml,以获取注释良好的示例文件,该文件与Ehcache jar中的默认文件相同。

您可以通过在应用程序中创建ehcache.xml来配置超时,内存中的最大元素数,是否溢出到磁盘等。将其放在src / java中,它将被复制到类路径中,Ehcache将看到它并使用您的而不是默认值。

关于caching - Grails为什么我的缓存失效了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9648992/

相关文章:

grails - 如何阻止Grails域类在数据库中创建表

grails - 如何在Grails 3中使用getArtefact调用构造函数

php - 创建调整大小的图像缓存但防止滥用

http - Cache-Control : max-age=0 and no-cache?有什么区别

apache - 具有上次修改的缓存过期控制

java - 如何使用 Grails 邮件插件设置内容类型?

grails - 对Grails数据源插件使用唯一约束会导致NullPointerException

java - 需要澄清 hibernate 二级缓存

grails - Grails spring-security-shiro:在gsp中使用Apache Shiro主题-从shiro迁移到spring-security-shiro

hibernate - 在Grails/Gorm中使用懒惰属性获取