管理Hibernate的緩存.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
管理Hibernate的緩存

1.Hibernate的缓存分为2类: Hibernate第一级缓存:Session的缓存,在其中,持久化类的每个实例都具有唯一的OID。 Hibernate第二级缓存:SessionFactory的外置缓存,是一个可插拔的缓存插件,它由SessionFactory负责管理。 Hibernate的二级缓存策略,是针对于ID查询的缓存策略,对于条件查询则毫无作用。为此,Hibernate提供了针对条件查询的Query Cache。 2.持久化层的缓存的并发访问策略:(每一种策略对应一种事务隔离级别) 事务型:仅仅在受管理环境中适用,可防止脏读和不可重复这类并发问题 读写型:仅仅在非群集的环境中适用,可防止脏读 非严格型:不保证缓存与数据库中是数据的一致性 只读型:对于从来不会被修改的数据 事务型并发访问策略的事务隔离级别最高,只读型的隔离级别最低,事务隔离级别越高,并发性能就越低,如果第二级缓存中存放的数据会经常被事务修改。就不得不提高缓存的事务隔离级别,但是这又会降低并发性能,因此,只有符合以下条件的数据才适合于存放到第二级缓存中: 很少被修改的数据 不是很重要的数据,允许出现偶尔的并发问题 不会被并发访问的数据 参考数据(供应参考的常量数据) 以下数据不适合存放到第二级缓存中: 经常被修改的数据 财务数据,绝对不允许出现并发问题 与其他应用共享的数据 (参考数据有以下特点: 它的实例的数目有限 每个实例会被许多其他类的实例引用 实例极少或者从来不会被修改) 3.管理Hibernate的第一级缓存 当应用程序调用Session的save(),update(),saveOrUpdate,load(),get(),find()以及调用查询接口的list(),iterate()或filter()方法时,如果在Session的缓存中还不存在相应对象,Hibernate就会把该对象加入到第一级缓存中。当清理缓存时,Hibernate会根据缓存中对象的状态变化来同步更新数据库. Session为应用程序提供俩个管理缓存的方法: evict(Object o):从缓存中清除参数指定的持久化对象,能够从缓存中清除特定的持久化对象,适用于以下情况: 不希望Session继续按照该对象的状态变化来同步更新数据库。 在批量更新或批量删除的场合,当更新或删除一个对象后,及时释放该对象占用的内存。 clear():清空缓存中所有持久化对象 4.管理Hibernate的第二级缓存 它是进程或群集范围内的缓存,缓存中存放的是对象的散装数据。第二级缓存是可配置的插件,Hibernate允许选用以下类型的缓存插件: EHCache:可作为进程范围内的缓存,存放数据的物理介质可以是内存或硬盘,对Hibernate的查询缓存提供了支持。其来自于Hibernate开放源代码组织的另一个项目。(net.sf.hibernate.cache.EhcacheProvider) OpenSymohony OSCache:可作为进程范围内的缓存,存放数据的物理介质可以是内存或硬盘,提供了丰富的换成数据过期策略,对Hibernate的查询缓存提供了支持。其由JBoss开放源代码组织提供。(net.sf.hibernate.cache.OSCacheProvider) SwarmCahche:可作为群集范围内的缓存,但不支持Hibernate的查询缓存.(net.sf.hibernate.cache.SwarmCacheProvider) JBossCache:可作为群集范围内的缓存,支持事务型并发访问策略,对Hibernate的查询缓存提供了支持。(net.sf.hibernate.cache.TreeCacheProvider) 四种缓存插件支持的并发访问策略: 缓存插件 只读型 非严格读写型 读写型 事务型 EHCache 支持 支持 支持 否 OSCahce 支持 支持 支持 否 SwarmCache 支持 支持 否 否 JBossCache 支持 否 否 支持 配置第二级缓存主要包含以下步骤: 选择需要使用第二级缓存的持久化类,设置它的命名缓存的并发访问策略。Hibernate既允许在分散的各个映射文件中为持久化类设置第二级缓存,还允许在Hibernate的配置文件Hibernate.cfg.xml中集中设置第二级缓存,后一种方式更有利于和缓存相关的配置代码的维护 选择合适的缓存插件,每一种缓存插件都有自带的配置文件,因此需要手工编辑该配置文件。EHCache缓存的配置文件为ehcache.xml,而JBossCache缓存的配置文件为treecache.xml。在缓存的配置文件中需要为每个命名缓存设置数据过期策略。 c

文档评论(0)

df9v4fzI + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档