我在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/