代码之家  ›  专栏  ›  技术社区  ›  Paul Taylor

Java Hibernate二级缓存是否默认启用?

  •  0
  • Paul Taylor  · 技术社区  · 7 年前

    默认情况下是否启用休眠二级缓存?

    org.hibernate.cfg.Configuration 那么这是否意味着它没有被使用。

    1 回复  |  直到 7 年前
        1
  •  2
  •   cruftex    7 年前

    不是的。第二级缓存是一个单独的缓存库,您需要将其添加为依赖项并对其进行配置,例如EHCache、hazelcast、cache2k,。。。

    用更多的内存来换取更低的外部请求是缓存的本质。根据您的应用程序,这可能会产生不同的效果。如果应用程序请求某些行的频率不高于另一行,并且您有大量数据,则缓存可能会适得其反。然而,这是非常罕见的。

    您可以限制缓存使用的内存量,因此一旦满了,使用的内存将相当稳定。

    使用数据库的主要原因之一是我的应用程序可以扩展,并且不需要越来越多的内存。

    对于较小的缓存大小,内存消耗甚至会降低。由于从数据库请求数据的活动较少,因此VM中的GC活动较少,并且需要较少的数据库连接和其他资源。

    我的经验是,即使是一个很小的缓存,比如说1000个条目,也会产生很大的影响。这是因为99%的应用程序都有一些经常被请求的数据热点。在不了解你的应用程序的情况下,从理论层面回答你的问题是不可能的。最好的办法就是试试看。