码迷,mamicode.com
首页 > Web开发 > 详细

Hibernate(十六):Hibernate二级缓存(一)

时间:2017-06-13 12:37:42      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:财务   write   类型   映射   缓存   适合   src   nal   通用   

  • Hibernate缓存

缓存(Cache):计算机领域非常通用的概念。它介于应用程序和永久性数据存储源(如磁盘上的文件或者数据库)之间,起作用是降低应用程序直接读取永久性数据存储源的频率,从而提高应用的运行性能。缓存中的数据是数据存储源中数据的拷贝。缓存的物理介质通常是内存。

Hibernate中提供了两个级别的缓存

1)第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存。这一级别的缓存由hibernate管理。

2)第二级别的缓存是SesssionFactory级别的缓存,它是属于进程范围的缓存。

  • SessionFactory级别的缓存

SesssionFactory的缓存可以分为两类

1)内置缓存:Hibernate自带的,不可卸载。通常在Hibernate的初始化阶段,Hibernate会把映射元数据和预定义的SQL语句放到SessionFactory的缓存中,映射元数据是映射文件中数据(.hbm.xml文件中的数据)的赋值,该内置缓存是只读的。

2)外置缓存(二级缓存):一个可配置的缓存插件。在默认情况下,SessionFactory不会启用这个缓存插件。外置缓存中的数据是数据库数据的复制,外置缓存的物理介质可以是内存或硬盘。

  • Hibernate二级缓存的适用范围

1)适合放入二级缓存的数据:

  很少被修改

  不是很重要的数据,允许出现偶尔的并发问题

2)不适合放入二级缓存中的数据

  经常被修改

  财务数据,绝对不允许出现并发问题

  与其他应用程序共享的数据

  • Hibernate二级缓存架构图

技术分享

  • 二级缓存的并发访问策略

1)两个并发的事务同时访问持久层的缓存的相同数据时,也有可能出现各类并发问题。

2)二级缓存可以设定以下4种类型的并发访问策略,每一种访问策略对应一种事务隔离界别:

  √ 非严格读写(Nonstrict-read-write):不保证缓存与数据库中数据一致性。提供Read Uncommited 事务隔离级别,对于极少被修改,而且允许脏读的数据可以采用该策略。

  √ 读写型(Read-write):提供Read Commited事务隔离级别。对于经常读但是很少被修改的数据,可以采用该隔离类型,因为它可以防止脏读。

  √ 事务型(Transactional):仅在受管理环境下适用,它提供了Repeateable Read事务隔离级别。对于经常读但很少被修改的数据,可以采用这种隔离策略,应为它可以防止脏读和不可重复读。

  √ 只读型(Read-Only):提供Serializable数据隔离级别,对于从来不会被修改的数据,可以采用这种访问策略。

 

Hibernate(十六):Hibernate二级缓存(一)

标签:财务   write   类型   映射   缓存   适合   src   nal   通用   

原文地址:http://www.cnblogs.com/yy3b2007com/p/7000254.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!