专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 Hibernate二级缓存解释

Hibernate二级缓存解释

更新时间:2022-04-12 09:19:30 来源:动力节点 浏览532次

动力节点小编来告诉大家,Hibernate 二级缓存是 Hibernate 对象关系映射 (ORM) 库中可用的数据缓存组件之一。Hibernate 是一种流行的 Java 语言 ORM 库,它允许您将 Java 对象数据存储在关系数据库管理系统 (RDBMS) 中。

由于 Java 对象不会自然地与 RDBMS 的表/行/列对齐(这种现象称为“阻抗不匹配”),Hibernate 充当翻译层。使用 Hibernate,您可以通过提供从关系数据库表、行、列和外键到带注释的 Java 类的映射机制,轻松快速地访问关系数据。Hibernate 使用易于使用的语法生成 SQL 查询,以基于 Java 面向对象的域模型查询数据。

二级缓存是通过插入第三方缓存技术来实现的,扩展Hibernate内置的缓存能力。它用于克服一级缓存的限制,如下所述。

什么是 Hibernate 缓存级别?

缓存是Hibernate 框架的优势之一,它可以在多个级别上使用。

一级缓存是 Hibernate 检查缓存数据的第一个地方。默认情况下,它是内置的并处于活动状态,以减少直接对数据库的 SQL 查询数量。如果请求的查询结果不在一级缓存中,则针对底层数据库运行查询(即,如果没有启用二级缓存)。此缓存仅在会话级别起作用,这意味着每个会话对象都独立缓存数据,因此不会在会话之间共享缓存数据,并且在会话关闭时会删除缓存数据。这使得缓存仅对同一会话中的重复查询有用。对于跨多个会话的重复查询,这就是二级缓存发挥作用的地方。

使用 Hibernate 二级缓存,您可以插入缓存技术来补充一级缓存。如果请求的查询结果不在一级缓存中,则检查二级缓存。二级缓存跨会话共享缓存数据,因此所有会话/用户都可以从缓存数据中受益,即使对于由另一个会话插入的数据,即使将数据插入二级缓存的会话关闭。

为什么二级缓存对 Hibernate 很重要?

二级缓存提高了使用同一会话工厂创建的所有会话的持久性方面的应用程序性能。使用二级缓存,即使请求是从多个会话执行的,缓存也可以为对象的请求提供服务,其延迟比请求发送到数据库时低得多。考虑到 ORM 查询可能很复杂,因此相对较慢,系统可以极大地受益于二级缓存,以减少对底层数据库的相同复杂/慢查询的重复。

这对于在对数据库进行 SQL 查询方面在用户之间具有高度共性的大容量 Web 应用程序特别有用。并且通过高度可扩展的缓存,您可以缓存更多的数据并实现更多的性能加速。

什么可以用作Hibernate的二级缓存?

任何支持与 Hibernate 开箱即用集成的技术都可以插入以充当二级缓存。内存数据网格通常用作 Hibernate 二级缓存。例如,Hazelcast IMDG 内置了与 Hibernate 的集成,可以轻松插入二级缓存。借助其分布式架构,您可以向集群添加更多节点,以尽可能多地增加缓存,以处理更重的工作负载。

通过以上介绍,相信大家对Hibernate二级缓存已经有了一定的认识,大家如果对此比较感兴趣,想了解更多相关知识,不妨来关注一下动力节点的Hibernate视频教程,里面的课程内容细致全面,由浅到深,很适合没有基础的小伙伴学习,希望对大家能够有所帮助。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>