一级缓存和二级缓存和查询缓存

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"


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值