hiernate二级缓存区域
区域即是一个具有名称的高速缓存块,你可以给每一个高速缓存块设置不同的缓存策略。如果没有设置任何的缓存区域,
则所有被缓存的对象,都将使用默认的缓存策略。即:<defaultCache.../>
对于类而言,区域的名称是类名。如:cn.itcast.domain.Person(一般情况后面会跟一个.data)
对于集合而言,区域的名称是类名加属性名。如cn.itcast.domain.Person.cars(一般情况,后面会跟一个.data)
hibernate的配置属性:hibernate.cache.region_prefix可以给每一个区域配置一个前缀的名称。但这种情况一般发生在一个项目中
有多个SessionFactory的情况。如果一个项目有多个SessionFactory则此配置也是必须的。
以下是示例:ehcache的具名缓存区域配置示例:
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="ehcache.xsd"
updateCheck="true" monitoring="autodetect"
dynamicConfig="true">
<diskStore path="d:/a"/> //指定文件保存路径
<defaultCache //配置默认缓存区域,这是必须配置项。如果没有给某个类设置缓存区域,它将使用默认缓存区域
maxElementsInMemory="100"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="300"
overflowToDisk="true"
/>
<cache name="cn.itcast.domain.Person" //指定Person类的缓存区域,所有Person类,都会保存在此区域
maxElementsInMemory="2" //故意指定内存中放很少的数据,以观察生成的文件大小
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="300"
overflowToDisk="true"
diskPersistent="true"
diskExpiryThreadIntervalSeconds="120"
maxElementsOnDisk="100"
>
</cache>
</ehcache>
测试代码:一次生成多个Person实例,看看生成的文件大小:
Session s1 = HibernateUtils.openSession();
Person p1 = (Person) s1.get(Person.class,"11");
Person p2 = (Person) s1.get(Person.class,"402880e 6346f 5ffe 01346f 6000b50000");
Person p3 = (Person) s1.get(Person.class,"402880e6347311fa01347311fb 7c 0000");
s1.close();
<!--[if !supportLineBreakNewLine]-->
1、理解高速查询缓存区域
当某个查询第一次执行时,它的结果被高速缓存在高速缓存区域--注意,这个区域不同于你可能已经配置的任何其他实例或
集合高速缓存区域。这个区域的名称默认为:org.hibernate.cache.StandardQueryCache。
可以通过setCacheRegion(...)方法,给一个特定的查询改变高速缓存区域。
hql = "from Person where name='JackB'";
list = s.createQuery(hql)
.setCacheable(true)
.setCacheRegion("itcast") //改变默认缓存查询区域
.list();
或是显示的设置一个查询缓存区域,以观察它的保存情况:
<cache name="org.hibernate.cache.StandardQueryCache" //必须叫这个名称
maxElementsInMemory="2"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="300"
overflowToDisk="true"
diskPersistent="true"
diskExpiryThreadIntervalSeconds="120"
maxElementsOnDisk="100"
/>
2、时间戳高速缓存区域
如果查询结果高速缓存被启用,另一个始终需要的高速缓存区域也出现了:org.hibernate.cache.UpdateTimestampsCache。
这是Hibernate内部使用的一个高速缓存区域。Hibernate用时间戳来决定被高速缓存的结果集是否已经失效。
使用二级缓存的项目建议
并非所有的类都可以受益于高速二级缓存,因为,能够禁用高速二级缓存也很重要。重申一下,高速缓存通常只对于主要用来读取的
类有用。如果你有更新比读取更经常的数据,就不要启用二级高速缓存,即使所有其他的高速缓存条件都符合!
更新期间,维护高速缓存的代价可能远远超出更快读取的性能受益。
转载于:https://www.cnblogs.com/q7q7q72007/p/3738046.html
hiernate二级缓存区域相关推荐
- 【MyBatis学习13】MyBatis中的二级缓存
1. 二级缓存的原理 前面介绍了,mybatis中的二级缓存是mapper级别的缓存,值得注意的是,不同的mapper都有一个二级缓存,也就是说,不同的mapper之间的二级缓存是互不影响的.为了更加 ...
- mybatis的缓存机制(一级缓存二级缓存和刷新缓存)和mybatis整合ehcache
1 查询缓存 1.1 什么是查询缓存 mybatis提供查询缓存,用于减轻数据压力,提高数据库性能. mybaits提供一级缓存,和二级缓存. 一级缓存是SqlSession级别的缓存.在 ...
- mybatis教程--查询缓存(一级缓存二级缓存和整合ehcache)
查询缓存 1 缓存的意义 将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题. 2 mybat ...
- MyBatis框架:延迟加载策策略、一级缓存、二级缓存
MyBatis框架:延迟加载策略和缓存 Mybatis 延迟加载策略 1.1 何为延迟加载? 1.2 实现需求 1.3 使用association实现延迟加载 1.3.1 账户的持久层DAO接口 1. ...
- jedis使用_Mybatis的二级缓存、使用Redis做二级缓存
什么是二级缓存? 二级缓存和一级缓存的原理是一样的,第一次查询,会将数据放入缓存中,然后第二次查询则会直接去缓存中取.但是一级缓存是基于的sqlSession,而二级缓存是基于mapper文件的nam ...
- MyBatisEhcache二级缓存的开启
mybatis二级缓存对细粒度的数据级别的缓存实现不好,比如如下需求:对商品信息进行缓存,由于商品信息查询访问量大,但是要求用户每次都能查询最新的商品信息, 此时如果使用myba ...
- Mybatis 详解--- 一级缓存、二级缓存
2019独角兽企业重金招聘Python工程师标准>>> Mybatis 为我们提供了一级缓存和二级缓存,可以通过下图来理解: ①.一级缓存是SqlSession级别的缓存.在操作数据 ...
- 【MyBatis框架】查询缓存-二级缓存-整合ehcache
mybatis整合ehcache ehcache是一个分布式缓存框架. 1.分布缓存 我们系统为了提高系统并发,性能.一般对系统进行分布式部署(集群部署方式) 如图 不使用分布缓存,缓存的数据在各各服 ...
- 【MyBatis框架】查询缓存-二级缓存原理
二级缓存原理 1.原理 首先看图 首先开启mybatis的二级缓存. sqlSession1去查询用户id为1的用户信息,查询到用户信息会将查询数据存储到二级缓存中. 如果SqlSession3去执行 ...
最新文章
- springMvc+mybatis+spring 整合 包涵整合activiti 基于maven
- 弃用消息队列!这个新一代消息系统,腾讯、华为都用疯了?
- Java小结(五)——进制转换
- Series与DataFrame数据类型操作基础
- Ubuntu安装过程中的问题
- Confluence 6 目录中的数据库
- Linux系统下 MongoDB安装搭建
- VMware虚拟机启动后出现黑屏,挂起关机无响应解决方案
- 1. PHP 设计模式---工厂模式
- 安卓问题报告小记(四):Some projects cannot be imported because they already exist in the workspace...
- 汽车UDS诊断详解及Vector相关工具链使用说明——总述
- java outofmemory怎么解决_java.lang.OutOfMemoryError异常解决方法
- 利用C#进行CAD二次开发
- 污染土壤修复可以采取哪些方式
- Visual Studio调试XtraReport脚本
- 作战飞机效能评估系统-通用协同效能评估系统软件
- word excel转pdf,pdf合并,插入页码
- camera--(2)双摄的作用
- 淘宝产品详情页 上拉加载图片详情 效果实现
- GeneXus项目启动