在Grails中缓存

时间:2012-10-16 06:30:11

标签: grails ehcache

我正面临着grails中二级缓存的问题。以下是我正在遵循的配置

DataSource.groovy中

    hibernate {
        cache.use_second_level_cache = true     
        cache.use_query_cache = true  
        cache.provider_class = 'org.hibernate.cache.EhCacheProvider'
    }

FirmClient.groovy

    static mapping = {
      cache true
    }  

FirmClientController.groovy

    def t1 = System.currentTimeMillis()
    def firmClient = FirmClient?.findAll(query,[cache:true])  
    println "time take for Firm client list>>>>>> ${System.currentTimeMillis()-t1}"

CONF / ehcache.xml中

  <?xml version="1.0" encoding="UTF-8"?>
  <ehcache>
    <diskStore path="java.io.tmpdir" />
    <defaultCache name="default" maxElementsInMemory="10000" eternal="false"
      timeToIdleSeconds="300" timeToLiveSeconds="600" overflowToDisk="true"/>
    <cache name="FirmClient" maxElementsInMemory="10000" eternal="false"
      timeToIdleSeconds="300" timeToLiveSeconds="600" overflowToDisk="true"/>
  </ehcache> 
  1. 第一个问题是在tmpdir中,FirmClient.data没有anydata。如何将数据转储到FirmClient.data

  2. 第二个问题是,当我第一次点击查询时,以毫秒为单位的时间更多,然后第二次使用相同的参数逐渐减少它。但是如果查询被缓存,我认为它应该显示时间段为零。

  3. 任何人都可以帮助我了解二级缓存的工作原理以及如何解决上述问题吗?

0 个答案:

没有答案