A)在内存中开辟一块儿空间,把硬盘上使用的东西放在内存,将来使用时直接取
<defaultCache
maxElementsInMemory="10000"//最多放多少对象
eternal="false"//永远生存的
timeToIdleSeconds="120"//120s消除
timeToLiveSeconds="1200"//生存时间
overflowToDisk="true"// 溢出时放到硬盘
/>
二级缓存,SessionFactory级别的缓存,可以跨越session存在
I经常被访问
Ii 改动不大会经常改动
Iii 数量有限
如:用户,组织机构
启用过程:
a.在hibernate.cfg.xml中指定二级缓存策略 <property name="hibernate.cache.provider_class">net.sf.ehcache.hibernate.EhCacheProvider </property>
b.在src目录下引入ehcache.xml配置文件
c.在hbm.xml中添加<cache>元素 <cache usage="read-write"region="sampleCache1"/>
注释:@Cache(usage=CacheConcurrencyStrategy.READ_ONLY)Load默认使用二级缓存,iterate默认使用二级缓存,重复查询缓存
List默认二级缓存加数据,但是查询的时候不使用,只放,由于每次query的结构不一样,所以不能进行重复查询
查询缓存:用于缓存相同参数值的HQL语句及结果.基于二级缓存使用.
<property name="cache.use_query_cache">true</property>
a.在hibernate.cfg.xml中启用查询缓存
b.在执行query.list()之前,调用query.setCacheable(true);
c.缓存算法:
LRU、LFU、FIFO
Least recently Used最近不使用
Least frequently used命中率低
First in first out先进先出
memoryStoreEvictionPplicy="LRU"
本文深入探讨了二级缓存的运作机制,包括内存管理、最大容量设置、时间控制和磁盘溢出策略。详细介绍了如何在hibernate.cfg.xml中启用二级缓存策略,配置ehcache.xml文件,以及在hbm.xml中添加缓存元素。同时阐述了查询缓存的工作原理,以及如何启用和使用查询缓存。最后,提供了缓存算法的选择和配置建议。
267

被折叠的 条评论
为什么被折叠?



