欢迎来到天天文库
浏览记录
ID:32399323
大小:112.50 KB
页数:4页
时间:2019-02-04
《hibernate二级缓存的使用》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、编码规范1.11启用Hibernate二级缓存Hibernate二级缓存分为两部分,class缓存和查询缓存,其获取对象的方式有所不同,但两者也有联系,查询缓存必须以class缓存为基础才能起作用,否则只会使效率更低。我们这里使用的二级缓存是通过ehcache第三方插件实现的。1.1.11.1配置Hibernate.cfg.xml启用class缓存:org.hibernate.cache.EhCacheProvider2、y>启用查询缓存:true1.1.21.2配置Spring框架中的hibernate启用class缓存:org.hibernate.cache.EhCacheProvider启用查询缓存:true1.1.31.3配置e3、hcacheEhcache配置文件为ehcache.xml,默认配置为:其中各项内容的含义为:1 diskStore:代表当二级缓存对象数据在内存中溢出,如果需要写4、入文件系统时的文件目录。2 defaultCache:默认的calss缓存配置,如果某个对象没有其专有的配置时,ehcache一律启用默认配置。3 maxElementInMemory:对象在内存中可存放的最大数量。3编码规范4 eternal:表示对象永不过期,如果选true则5,6两项无效。5 timeToIdleSeconds:对象的空闲状态过期时间,单位为秒,0为可以无限制空闲。6 timeToLiveSeconds:对象存在的最长时间,单位为秒(注意5、,如果该项比5项要小,则第5项无意义),0为永不过期。7 overflowToDisk:当对象在内存中的数量超过maxElementInMemory值时,如果该项为true,则ehcahe会把对象数据写入diskStore项指定的目录。如果需要对某个具体对象进行单独配置时,可以加上一组cache配置,例如:6、"timeToLiveSeconds="0"overflowToDisk="true"/>另外还有两个特殊的cache配置:7、ryCache"maxElementsInMemory="10000"eternal="false"timeToIdleSeconds="1800"timeToLiveSeconds="0"overflowToDisk="true"/>这两个cache配置对应查询缓存,具体作用如下(摘用别人的描述):“当hibernate更新数据库的时候,它怎么知道更新哪些查询缓存呢?hibernate在一个地方维护每个表的最后更新时间,其实也就是放在上面UpdateTimestampsCache所指定的缓存配置里面。当通过hibernate更8、新的时候,hibernate会知道这次更新影响了哪些表。然后它更新这些表的最后更新时间。每个缓存都有一个生成时间和这个缓存所查询的表,当hibernate查询一个缓存是否存在的时候,如果缓存存在,它还要取出缓存的生成时间和这个缓存所查询的表,然后去查找这些表的最
2、y>启用查询缓存:true1.1.21.2配置Spring框架中的hibernate启用class缓存:org.hibernate.cache.EhCacheProvider启用查询缓存:true1.1.31.3配置e
3、hcacheEhcache配置文件为ehcache.xml,默认配置为:其中各项内容的含义为:1 diskStore:代表当二级缓存对象数据在内存中溢出,如果需要写
4、入文件系统时的文件目录。2 defaultCache:默认的calss缓存配置,如果某个对象没有其专有的配置时,ehcache一律启用默认配置。3 maxElementInMemory:对象在内存中可存放的最大数量。3编码规范4 eternal:表示对象永不过期,如果选true则5,6两项无效。5 timeToIdleSeconds:对象的空闲状态过期时间,单位为秒,0为可以无限制空闲。6 timeToLiveSeconds:对象存在的最长时间,单位为秒(注意
5、,如果该项比5项要小,则第5项无意义),0为永不过期。7 overflowToDisk:当对象在内存中的数量超过maxElementInMemory值时,如果该项为true,则ehcahe会把对象数据写入diskStore项指定的目录。如果需要对某个具体对象进行单独配置时,可以加上一组cache配置,例如:6、"timeToLiveSeconds="0"overflowToDisk="true"/>另外还有两个特殊的cache配置:7、ryCache"maxElementsInMemory="10000"eternal="false"timeToIdleSeconds="1800"timeToLiveSeconds="0"overflowToDisk="true"/>这两个cache配置对应查询缓存,具体作用如下(摘用别人的描述):“当hibernate更新数据库的时候,它怎么知道更新哪些查询缓存呢?hibernate在一个地方维护每个表的最后更新时间,其实也就是放在上面UpdateTimestampsCache所指定的缓存配置里面。当通过hibernate更8、新的时候,hibernate会知道这次更新影响了哪些表。然后它更新这些表的最后更新时间。每个缓存都有一个生成时间和这个缓存所查询的表,当hibernate查询一个缓存是否存在的时候,如果缓存存在,它还要取出缓存的生成时间和这个缓存所查询的表,然后去查找这些表的最
6、"timeToLiveSeconds="0"overflowToDisk="true"/>另外还有两个特殊的cache配置:7、ryCache"maxElementsInMemory="10000"eternal="false"timeToIdleSeconds="1800"timeToLiveSeconds="0"overflowToDisk="true"/>这两个cache配置对应查询缓存,具体作用如下(摘用别人的描述):“当hibernate更新数据库的时候,它怎么知道更新哪些查询缓存呢?hibernate在一个地方维护每个表的最后更新时间,其实也就是放在上面UpdateTimestampsCache所指定的缓存配置里面。当通过hibernate更8、新的时候,hibernate会知道这次更新影响了哪些表。然后它更新这些表的最后更新时间。每个缓存都有一个生成时间和这个缓存所查询的表,当hibernate查询一个缓存是否存在的时候,如果缓存存在,它还要取出缓存的生成时间和这个缓存所查询的表,然后去查找这些表的最
7、ryCache"maxElementsInMemory="10000"eternal="false"timeToIdleSeconds="1800"timeToLiveSeconds="0"overflowToDisk="true"/>这两个cache配置对应查询缓存,具体作用如下(摘用别人的描述):“当hibernate更新数据库的时候,它怎么知道更新哪些查询缓存呢?hibernate在一个地方维护每个表的最后更新时间,其实也就是放在上面UpdateTimestampsCache所指定的缓存配置里面。当通过hibernate更
8、新的时候,hibernate会知道这次更新影响了哪些表。然后它更新这些表的最后更新时间。每个缓存都有一个生成时间和这个缓存所查询的表,当hibernate查询一个缓存是否存在的时候,如果缓存存在,它还要取出缓存的生成时间和这个缓存所查询的表,然后去查找这些表的最
此文档下载收益归作者所有