`
锋之轨迹
  • 浏览: 56291 次
  • 性别: Icon_minigender_1
  • 来自: 福州
文章分类
社区版块
存档分类

Hibernate二级缓存详解

阅读更多
在向大家详细介绍Hibernate二级缓存之前,首先让大家了解下一级缓存,然后全面介绍Hibernate二级缓存。
Hibernate中提供了两级Cache,第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存。这一级别的缓存由hibernate管理的一般情况下无需进行干预;第二级别的缓存是SessionFactory级别的缓存,它是属于进程范围或群集范围的缓存。这一级别的缓存可以进行配置和更改,并且可以动态加载和卸载。 Hibernate还为查询结果提供了一个查询缓存,它依赖于第二级缓存
一级缓存的管理:
当应用程序调用Session的save()、update()、savaeOrUpdate()、get()或load(),以及调用查询接口的 list()、iterate()或filter()方法时,如果在Session缓存中还不存在相应的对象,Hibernate就会把该对象加入到第一级缓存中。当清理缓存时,Hibernate会根据缓存中对象的状态变化来同步更新数据库。 Session为应用程序提供了两个管理缓存的方法: evict(Object obj):从缓存中清除参数指定的持久化对象。 clear():清空缓存中所有持久化对象。
 Hibernate二级缓存的管理:
1. Hibernate二级缓存策略的一般过程如下
1) 条件查询的时候,总是发出一条select * from table_name where …. (选择所有字段)这样的SQL语句查询数据库,一次获得所有的数据对象。
2) 把获得的所有数据对象根据ID放入到第二级缓存中。
3) 当Hibernate根据ID访问数据对象的时候,首先从Session一级缓存中查;查不到,如果配置了二级缓存,那么从二级缓存中查;查不到,再查询数据库,把结果按照ID放入到缓存。
4) 删除、更新、增加数据的时候,同时更新缓存。
Hibernate二级缓存策略,是针对于ID查询的缓存策略,对于条件查询则毫无作用。为此,Hibernate提供了针对条件查询的Query Cache。
2. 什么样的数据适合存放到第二级缓存中? 
1) 很少被修改的数据 
2) 不是很重要的数据,允许出现偶尔并发的数据 
3) 不会被并发访问的数据 
4) 参考数据,指的是供应用参考的常量数据,它的实例数目有限,它的实例会被许多其他类的实例引用,实例极少或者从来不会被修改。
3. 不适合存放到第二级缓存的数据? 
1) 经常被修改的数据 
2) 财务数据,绝对不允许出现并发 
3) 与其他应用共享的数据。
4. 常用的缓存插件 
Hibernater二级缓存是一个插件,下面是几种常用的缓存插件:
◆EhCache:可作为进程范围的缓存,存放数据的物理介质可以是内存或硬盘,对Hibernate的查询缓存提供了支持。
◆OSCache:可作为进程范围的缓存,存放数据的物理介质可以是内存或硬盘,提供了丰富的缓存数据过期策略,对Hibernate的查询缓存提供了支持。
◆SwarmCache:可作为群集范围内的缓存,但不支持Hibernate的查询缓存。
◆JBossCache:可作为群集范围内的缓存,支持事务型并发访问策略,对Hibernate的查询缓存提供了支持。
5. 配置Hibernate二级缓存的主要步骤
1) 选择需要使用二级缓存的持久化类,设置它的命名缓存的并发访问策略。这是最值得认真考虑的步骤。
2) 选择合适的缓存插件,然后编辑该插件的配置文件。
分享到:
评论

相关推荐

    hibernate 二级缓存详解

    Hibernate 二级缓存是针对SessionFactory级别的全局缓存,与一级缓存(Session级别)不同,一级缓存只在单个Session生命周期内有效。二级缓存则允许不同Session之间共享数据,提高了数据访问效率,减少了对数据库的...

    hibernate二级缓存 详解

    详细描述了,Hibernate中一级缓存和二组缓存的思想思路,以及使用方法,使用情况。

    hibernate二级缓存示例源码

    **hibernate二级缓存详解** Hibernate作为Java领域中广泛使用的对象关系映射(ORM)框架,极大地简化了数据库操作。然而,在处理大量数据时,性能优化显得尤为重要,这就是二级缓存的作用。本文将深入探讨Hibernate...

    Hibernate二级缓存

    【Hibernate二级缓存详解】 Hibernate二级缓存是一种可配置的插件,主要依赖于第三方产品,比如EHCache,用于提高数据库操作的效率。在数据库访问过程中,Hibernate的Session提供了默认的一级缓存,但一级缓存的...

    hibernate二级缓存

    **hibernate二级缓存详解** 在Java的持久化框架Hibernate中,缓存是一种重要的优化手段,它能够显著提升数据库操作的效率。本项目提供的工程示例深入探讨了Hibernate的一级缓存和二级缓存机制,并通过实际运行验证...

    hibernate二级缓存(包括注解方式)

    **hibernate二级缓存详解(包括注解方式)** 在Java企业级开发中,Hibernate作为一款强大的ORM框架,极大地简化了数据库操作。然而,随着应用程序规模的扩大,数据库访问性能成为了瓶颈。为了提高效率,Hibernate...

    Hibernate二级缓存.doc

    ### Hibernate二级缓存详解 #### 一、概述与背景 Hibernate作为一款优秀的Java持久层框架,在提高开发效率的同时,也面临着性能优化的问题。缓存机制是解决这一问题的关键技术之一。Hibernate提供了两种缓存机制:...

    java中hibernate二级缓存详解

    Hibernate 二级缓存详解 Hibernate 中的二级缓存是 SessionFactory 级别的缓存,它是属于进程范围的缓存。二级缓存是可配置的缓存插件,默认情况下,SessionFactory 不会启用这个缓存插件。二级缓存中的数据是...

    hibernate一级和二级缓存配置与详解

    本篇将深入探讨Hibernate的一级缓存和二级缓存,以及查询缓存的配置和使用。 ### 一级缓存 一级缓存是Hibernate默认提供的缓存,它是Session级别的,每个Hibernate Session都有一个私有的、本地的一级缓存。当我们...

    Hibernate二级缓存配置详解

    《Hibernate二级缓存配置详解》 在Java的持久化框架Hibernate中,缓存技术是提升系统性能的关键之一。本文将深入探讨Hibernate的二级缓存,包括其事务范围、进程范围和集群范围的配置,特别是关注进程范围内的...

    Hibernate_二级缓存总结

    **Hibernate 二级缓存详解** 缓存是一种提升应用程序性能的技术,它通过将常用数据存储在内存中,减少了对持久层数据库的访问,从而提高系统响应速度。在Hibernate框架中,缓存主要分为一级缓存和二级缓存。 **1. ...

    Hibernate4二级缓存实例(源码)

    这里它被用作Hibernate二级缓存的实现方式,这意味着当数据首次从数据库中读取后,会被存储在memcached中,后续请求可以直接从缓存中获取,避免了频繁的数据库交互,从而提高了系统的响应速度。 **知识点详解:** ...

    hibernate二级缓

    **hibernate二级缓存详解** 在Java的持久化框架Hibernate中,二级缓存是一个重要的性能优化手段。它能够显著提升应用的响应速度,通过存储经常访问的数据来减少数据库的I/O操作。本文将深入探讨Hibernate的二级缓存...

    Hibernate二级缓存技术

    ### Hibernate二级缓存技术详解 #### 一、概述 Hibernate 是一个开源的对象关系映射(ORM)框架,它简化了Java应用与关系型数据库之间的交互。为了提高性能和减少数据库的访问频率,Hibernate 提供了一级缓存和二...

    二级缓存详解

    以下是关于"二级缓存详解"的详细知识: 二级缓存是指在SessionFactory级别上维护的数据缓存,它不同于一级缓存(Session级别),一级缓存在每个Session实例中保存对象,而二级缓存则跨越多个Session,甚至整个应用...

    详解Java的Hibernate框架中的缓存与二级缓存

    主要介绍了Java的Hibernate框架中的缓存与二级缓存,Hibernate是Java的SSH三大web开发框架之一,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics