我在grails应用程序中缓存了一些域实例和查询。我希望在第一次向db发出查询之后,后续调用只会命中缓存。但是,我发现查询会周期性地命中db (每5-6次之后)。同时没有数据更新/插入到数据库中。我正在使用p6spy检查所有记录的查询,没有看到任何更新或插入发生。
有什么额外的设置我需要tweek吗?
当前域类具有
static mapping = {
cach true
}像findBy*这样的查询都设置了[cache:true]。
发布于 2012-03-11 06:47:26
如果您不配置Ehcache,您的缓存将使用120秒的默认超时。有关注释良好的示例文件,请参见http://ehcache.org/ehcache.xml,该示例文件与Ehcache jar中的默认文件相同。
您可以通过在应用程序中创建ehcache.xml来配置超时、内存中的最大元素数、是否溢出到磁盘等。将它放在src/java中,它将被复制到类路径中,Ehcache将看到它并使用您的,而不是它的缺省值。
https://stackoverflow.com/questions/9648992
复制相似问题