hibernate的二级缓存 I
来源:互联网 发布:template.js helper 编辑:程序博客网 时间:2024/06/08 16:32
hibernate的二级缓存
@sunRainAmazing
二级缓存
什么样的数据适合存放到第二级缓存中? 1、很少被修改的数据 2、不是很重要的数据,允许出现偶尔并发的数据 3、不会被并发访问的数据 4、参考数据 不适合存放到第二级缓存的数据? 1、经常被修改的数据 2、财务数据,绝对不允许出现并发 3、与其他应用共享的数据。
Hibernate的二级缓存
Hibernate提供了两级缓存,第一级是Session的缓存。由于Session对象的生命周期通常对应一个数据库事务或者一个应用事务,因此它的缓存是事务范围的缓存。第一级缓存是必需的,不允许而且事实上也无法比卸除。在第一级缓存中,持久化类的每个实例都具有唯一的OID。 第二级缓存是一个可插拔的的缓存插件,它是由SessionFactory负责管理。 由于SessionFactory对象的生命周期和应用程序的整个过程对应, 因此第二级缓存是进程范围或者集群范围的缓存。 这个缓存中存放的对象的松散数据。第二级对象有可能出现并发问题, 因此需要采用适当的并发访问策略,该策略为被缓存的数据提供了事务隔离级别。 缓存适配器用于把具体的缓存实现软件与Hibernate集成。 第二级缓存是可选的,可以在每个类或每个集合的粒度上配置第二级缓存。
1.什么是二级缓存?
SessionFactory级别的缓存,可以跨越Session存在, 可以被多个Session所共享。 Hibernate的二级缓存策略的一般过程如下: 1) 条件查询的时候,总是发出一条select * from table_name where …. (选择所有字段)这样的SQL语句查询数据库,一次获得所有的数据对象。 2) 把获得的所有数据对象根据ID放入到第二级缓存中。 3) 当Hibernate根据ID访问数据对象的时候, 首先从Session一级缓存中查; 查不到,如果配置了二级缓存,那么从二级缓存中查; 查不到,再查询数据库,把结果按照ID放入到缓存。 4) 删除、更新、增加数据的时候,同时更新缓存。 Hibernate的二级缓存策略,是针对于ID查询的缓存策略, 对于条件查询则毫无作用。 为此,Hibernate提供了针对条件查询的Query缓存。 Hibernate的Query缓存策略的过程如下: 1) Hibernate首先根据这些信息组成一个Query Key,Query Key 包括条件查询的请求一般信息:SQL, SQL需要的参数, 记录范围(起始位置rowStart,最大记录个数maxRows),等。 2) Hibernate根据这个Query Key到Query缓存中查找对应的结果列表。 如果存在,那么返回这个结果列表; 如果不存在,查询数据库,获取结果列表, 把整个结果列表根据Query Key放入到Query缓存中。 3) Query Key中的SQL涉及到一些表名, 如果这些表的任何数据发生修改、删除、增加等操作, 这些相关的Query Key都要从缓存中清空。
阅读全文
0 0
- hibernate的二级缓存 I
- Hibernate的一二级缓存:二级缓存
- hibernate二级缓存的配置
- Hibernate的二级缓存
- hibernate的二级缓存
- hibernate二级缓存的实现
- Hibernate的二级缓存
- HIBERNATE二级缓存的东东
- hibernate二级缓存的实现
- hibernate二级缓存的配置
- hibernate 的二级缓存
- Hibernate---二级缓存的管理
- hibernate的二级缓存
- hibernate 二级缓存的使用方法
- hibernate的二级缓存详解
- hibernate的二级缓存配置
- hibernate的二级缓存
- hibernate的二级缓存
- 神经网络:1)从zero开始的梯度下降法
- 栈(链式)
- JAVA源码解读之StringBuffer
- 计算机组成与系统结构学习笔记(1)一 计算机系统概论 [1.3
- Friday the Thirteenth
- hibernate的二级缓存 I
- STM32F4应用笔记(五)UCGUI+uC/OS-II+支持触摸屏
- 大鱼吃小鱼
- 时域卷积与频域乘积
- 快乐数
- Java集合类HashMap实现原理
- Windows server 2008 性能优化
- Datatable的分页入门
- Spring Bean的生命周期小析(一)