【问题标题】:Caching in Grails - what is cached by default and what can be enabled?Grails 中的缓存 - 默认缓存哪些内容以及可以启用哪些内容?
【发布时间】:2011-07-19 11:45:28
【问题描述】:

我很好奇 Grails 框架提供的对数据库/GORM 对象缓存的支持。

  • 默认启用哪些数据库缓存?
  • 框架提供哪些数据库缓存但默认禁用?
  • 您通常在 Grails 项目中启用/禁用哪种数据库缓存?为什么?

【问题讨论】:

    标签: hibernate grails grails-orm


    【解决方案1】:

    Grails 为 GORM 使用 Hibernate,因此数据库缓存功能实际上是由 Hibernate 提供的。

    1. Hibernate 一级缓存已启用(仅持续大约用户请求的时间)。它不能被禁用。

    2. Hibernate 二级缓存也已启用,但可以通过配置关闭。此缓存将保存数据很长时间(可按对象类型配置),除非某些东西使数据无效(更新)

    对于重读应用程序,应该启用二级缓存,您将节省大量访问数据库的次数,并且对您的应用程序是 100% 透明的(几乎没有成本)。

    问候,

    文森特

    【讨论】:

      【解决方案2】:

      3) 我们禁用了磁盘缓存溢出。必须为此从ehcache-core-1.7.1.jar/ehcache-failsafe.xml 显式创建ehcache.xml

      磁盘缓存溢出只会给我们带来麻烦,因为速度慢且容易出现 IO 错误。

      【讨论】:

      • 有趣。您在 ehcache.xml 中设置了哪些设置?你把它放在哪里了?
      • 设置diskPersistent="false"overflowToDisk="false"。将其放入grails-app/config。调整了 timeToIdleSecondstimeToLiveSeconds
      猜你喜欢
      • 2018-01-25
      • 1970-01-01
      • 2012-07-29
      • 1970-01-01
      • 1970-01-01
      • 2017-11-11
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      相关资源
      最近更新 更多