四、缓存的管理
Hibernate
的缓存管理
一级缓存的管理
:
evit(Object obj)
将指定的持久化对象从一级缓存中清除
,
释放对象所占用的内存资源
,
指定对象从持久化状态变为脱管状态
,
从而成为游离对象
.
clear()
将一级缓存中的所有持久化对象清除
,
释放其占用的内存资源
contains(Object obj)
判断指定的对象是否存在于一级缓存中
.
flush()
刷新一级缓存区的内容
,
使之与数据库数据保持同步
.
二级缓存的管理
:
evict(Class arg0, Serializable arg1)
将某个类的指定
ID
的持久化对象从二级缓存中清除
,
释放对象所占用的资源
.
evictCollection(String arg0)
将指定类的所有持久化对象的指定集合从二级缓存中清除
,
释放其占用的内存资源
.
如何避免一次性大量的实体数据入库导致内存溢出
*
先
flush
,再
clear
如果数据量特别大,考虑采用
jdbc
实现,如果
jdbc
也不能满足要求,可以考虑采用数据库本身的特定导入工具
五、什么样的数据不适合放在二级缓存中来
?
下面这几种情况就不适合
加载到二级缓存中
:
1.
经常被修改的数据
2.
绝对不允许出现并发访问的数据
3.
与其他应用共享的数据
下面这己种情况合适
加载到二级缓存中
:
1.
数据更新频率低
2.
允许偶尔出现并发问题的非重要数据
3.
不会被并发访问的数据
4.
常量数据
5.
不会被第三方修改的数据
六、二级缓存的配置
Hibernate
的二级缓存功能是靠配置二级缓存插件来实现的
,Hibernate
为了集成这些插件
,Hibernate
提供了
org.hibernate.cache.CacheProvider
借口
,
它充当缓存插件与
Hibernate
之间的适配器
.
常用的二级缓存插件
EHCache org.hibernate.cache.EhCacheProvider
OSCache org.hibernate.cache.OSCacheProvider
SwarmCahe org.hibernate.cache.SwarmCacheProvider
JBossCache org.hibernate.cache.TreeCacheProvider
设置
hibernate.cache.provider_class
。
我们这里用
ehcache
,如
hibernate.cache.provider_class=net.sf.hibernate.cache.EhCacheProvider
由于这是
HIBERNATE
默认的
CACHE
提供者
,
所以无须做什么设置
.
只要在
src
中添加
ehcache
的配置文件
ehcache.xml:
<ehcache>
<diskStore path="java.io.tmpdir"/>
<defaultCache
maxElementsInMemory="10000" eternal="false" timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true" />
<cache name="goncha.hb.bean.Person" maxElementsInMemory="10" eternal="false"
timeToIdleSeconds="100" timeToLiveSeconds="100" overflowToDisk="false" />
<cache name="goncha.hb.bean.Address" maxElementsInMemory="10" eternal="false"
timeToIdleSeconds="100" timeToLiveSeconds="100" overflowToDisk="false" />
</ehcache>
分享到:
- 2009-10-26 10:54
- 浏览 1099
- 评论(0)
- 论坛回复 / 浏览 (0 / 1718)
- 查看更多
相关推荐
深入理解hibernate缓存,不再惧怕hibernate缓存...
Hibernate二级缓存Hibernate二级缓存Hibernate二级缓存Hibernate二级缓存Hibernate二级缓存
hibernate缓存机制 hibernate缓存机制 hibernate缓存机制
Hibernate缓存.docHibernate缓存.doc
hibernate 二级缓存详解hibernate 二级缓存详解hibernate 二级缓存详解hibernate 二级缓存详解hibernate 二级缓存详解hibernate 二级缓存详解hibernate 二级缓存详解hibernate 二级缓存详解hibernate 二级缓存详解
Java Hibernate缓存深入详解
Hibernate是一种面向Java环境的ORM工具。系统地分析了Hibernate的缓存结构,并描述了二级缓存的查询过程、缓存策略;同时总结了二级缓存使用中的一些限制,以及使用二级缓存的优化策略。
Hibernate 缓存 深入 详解 ITEye
hibernate一级缓存和二级缓存的区别与联系
传播智客,为Spring集成的Hibernate配置二级缓存、cache.xml
关于hibernate缓存的一个ppt课件,60+幻灯片,有需要的可以看一下
为Spring集成的Hibernate配置二级缓存
Hibernate 二级缓存
Hibernate缓存,性能优化
Hibernate缓存原理及调优策略 Hibernate缓存原理调优策略
基于hibernate二级缓存使用的源码实例
hibernate5.1二级缓存包
Hibernate缓存深入详解,很好的缓存原理参考资料
hibernate二级缓存 ehcache