Hibernate_Cache

1.打开二级缓存

<property name="cache.use_second_level_cache">true</property>       <!-- 设置使用二级缓存为true --><property name="cache.provider_class">org.hibernate.cache.EhCacheProvider</property>      <!-- 设置一个二级缓存的提供商 -->
使用EhCacheProvider必须再加一个ehcache.xml配置文件。
这个配置文件有一些特别的属性需要解释一下:
<defaultCache
        maxElementsInMemory="10000"               <!-- 最大可以放多少对象 -->
        eternal="false"
 <!-- 对象能否释放 -->        timeToIdleSeconds="120"
 <!-- 闲置多久之后清除未使用的对象 -->        timeToLiveSeconds="120"
 <!-- 存活多少时间后清除对象 -->        overflowToDisk="true"
 <!-- 溢出的时候能不能放到硬盘上 -->        />

之后在需要放到二级缓存中的类头上加@Cache(CacheConcurrencyStrategy usage();                 (1)

    String region() default "";                       (2)

    String include() default "all";                   (3)

)

 

2.二级缓存使用的范围

  经常被访问,数据量不大,很少被修高

 

3.load,iterate默认使用二级缓存,list默认往二级缓存里加数据,但查询的时候不使用

 

4.查询缓存(三级缓存)就是相同查询的时候用到的缓存

  打开:<property name="cache.use_query_cache">true</property>

        调用的时候session.createQuery("xxxxxxxxx").setCacheable(true)

 

5.缓存算法(缓存满了之后的处理方法)

   1)LRU --> Least Recently Used             未被使用时间最长的

   2)LFU --> Least Frequently Used          用到频率最小的

   3)FIFO --> First In First Out

 

使用时在对应的cache.xml文件中,在你使用的cache配置下加一个属性,memoryStoreEvictionPolicy='LRU'

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值