您的位置:首页 > 其它

Hibernate 性能优化之二级缓存

2015-01-14 10:35 435 查看
二级缓存是一个共享缓存,在二级缓存中存放的数据是共享数据
特性
修改不能特别频繁
数据可以公开
二级缓存在sessionFactory中,因为sessionFactory本身是线程安全,所以二级缓存的数据线程也是安全的,二级缓存的生命周期和sessionFactory一样

怎么样把数据放入到二级缓存中?
通过session.get,session.load,session.update方法都可以把对象放入到二级缓存中(同时也存入了一级缓存中)

   session.save 该方法只把对象放入到了一级缓存中,没有放入到二级缓存中,如果执行session.flush()时,会把数据放到二级缓存中
怎么样把数据从二级缓存中提取?
通过session.get和session.load方法都可以提取二级缓存中的数据

配置二级缓存





把二级缓存中的数据放到磁盘上
在classpath下存放一个文件ehcache.xml

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../config/ehcache.xsd">

<diskStore path="C:\\TEMP1"/>
<defaultCache
maxElementsInMemory="12"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="false"
maxElementsOnDisk="10000000"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"
/>

<Cache
name="cn.test.Classes"
maxElementsInMemory="5"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="true"
maxElementsOnDisk="10000000"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"
/>
</ehcache>


当内存中的二级缓存存放够5个对象时,剩余的对象就放入到磁盘上



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: