hibernate一二级缓存
来源:互联网 发布:樱井知香步兵番号 编辑:程序博客网 时间:2024/05/31 19:31
hibernate缓存分为:一级缓存和二级缓存
Session缓存:保存持久化对象
SessionFactory:保存配置文件中的元数据和根据这些元数据推出的预定义的SQL语句
一级缓存:事务级别的缓存,即session缓存,里面存放的是持久化对象,它仅能被当前事务访问。
二级级存:进程级别或群集级别缓存:这里面存放的可以是关联的持久化对象,也可以是持久化对象的散装数据,它能被当前进程的所有事务访问。当里面存放的是关联的持久化对象,当不同的事务访问这些对象时,就会产生并发的几类问题,所在不提倡这种存放形式。当访问持久化对象的散装数据时,每个事务会根据这些散装对象重新组装持久化对象,所在不同的事务之间会获的不同的持久化对象,也就是说在组装完成后,对这些对象的访问不会存在并发问题,它的并发问题被移置到了获的散装数据的范围。在获取散装数据时,为了保证获取正确的数据,所以会存在并发问题。
为了解决二级缓存的并发问题,hibernate提供了4种访问策略:
1.事务型(Repeatable Read):仅在受管理的环境中适用。适用于经常被读,但很少被修改的数据,可以防止脏读和不可重复读。
2.读写型(Read Commit):仅在非集群环境中适用。适用于经常被读,但很少被修改的数据,可以防止脏读。
3.非严格读写:不保证缓存中的数据和数据库中的数据的一致性。必须为它设置过期时间,适用于极少被修改,偶尔允许脏读。
4.只读型:适用于从不会被修改的数据。
这四种策略中,事务型的隔离级别最高,只读型最低,在读写二级缓存只的数据时,如果经常被修改,则需要的隔离级别就越高,但并发效率就越低,因此只有满足以下条件的数据才适合存放到二级缓存中:
1.很少被修改
2.不是很重要的数据,偶尔允许出现并发问题。
3.不会被并发访问的数据
4.参考数据
对于以下类型的数据不适合存放到二级缓存中:
1.经常被修改
2.财务数据,不允许出现并发访问。
3.与其他应用共享的数据。因为使用了二级缓存的hibernate应用与其他应用共享数据,当其他应用修改了数据,hibernate无法保证与数据库中数据的一致性。
Session缓存:保存持久化对象
SessionFactory:保存配置文件中的元数据和根据这些元数据推出的预定义的SQL语句
一级缓存:事务级别的缓存,即session缓存,里面存放的是持久化对象,它仅能被当前事务访问。
二级级存:进程级别或群集级别缓存:这里面存放的可以是关联的持久化对象,也可以是持久化对象的散装数据,它能被当前进程的所有事务访问。当里面存放的是关联的持久化对象,当不同的事务访问这些对象时,就会产生并发的几类问题,所在不提倡这种存放形式。当访问持久化对象的散装数据时,每个事务会根据这些散装对象重新组装持久化对象,所在不同的事务之间会获的不同的持久化对象,也就是说在组装完成后,对这些对象的访问不会存在并发问题,它的并发问题被移置到了获的散装数据的范围。在获取散装数据时,为了保证获取正确的数据,所以会存在并发问题。
为了解决二级缓存的并发问题,hibernate提供了4种访问策略:
1.事务型(Repeatable Read):仅在受管理的环境中适用。适用于经常被读,但很少被修改的数据,可以防止脏读和不可重复读。
2.读写型(Read Commit):仅在非集群环境中适用。适用于经常被读,但很少被修改的数据,可以防止脏读。
3.非严格读写:不保证缓存中的数据和数据库中的数据的一致性。必须为它设置过期时间,适用于极少被修改,偶尔允许脏读。
4.只读型:适用于从不会被修改的数据。
这四种策略中,事务型的隔离级别最高,只读型最低,在读写二级缓存只的数据时,如果经常被修改,则需要的隔离级别就越高,但并发效率就越低,因此只有满足以下条件的数据才适合存放到二级缓存中:
1.很少被修改
2.不是很重要的数据,偶尔允许出现并发问题。
3.不会被并发访问的数据
4.参考数据
对于以下类型的数据不适合存放到二级缓存中:
1.经常被修改
2.财务数据,不允许出现并发访问。
3.与其他应用共享的数据。因为使用了二级缓存的hibernate应用与其他应用共享数据,当其他应用修改了数据,hibernate无法保证与数据库中数据的一致性。
0 0
- Hibernate的一二级缓存:二级缓存
- Hibernate一、二级缓存原理
- Hibernate一二级缓存
- Hibernate的一二级缓存
- Hibernate二级缓存(一)
- Hibernate(六)一二级缓存
- hibernate一二级缓存
- 【Hibernate】Hibernate的一二级缓存
- hibernate二级缓存,一二级缓存交互,CacheMode
- hibernate一二级缓存(一)
- Hibernate的一二级缓存区别
- hibernate一二级缓存(二)
- hibernate一、二级缓存的实现
- hibernate进阶--一/二级缓存策略
- hibernate的二级缓存(一)
- hibernate笔记(六)----事务,一二级缓存
- Hibernate的一二级缓存:一级缓存
- Hibernate中 一 二级缓存及查询缓存
- C++实现动画播放
- Java多态的应用
- React Native开源播放器Video组件(react-native-video)
- Android package属性、package name和Application ID三者的联系及区别
- 网站转安卓APP利器:Website 2 APK Builder
- hibernate一二级缓存
- 一个具有历史意义的时刻
- 初识mySQL(15)
- HttpURLConnection用法详解
- 常用的Git命令
- 一个图形图像学习的非常好的资源链接!
- ANSI X9.19 MAC算法的C语言实现
- 浅析Ad Exchange广告交易模式
- 也说FLV格式分析(C语言从0开始,详解,完整版)