二十、一级缓存和二级缓存和査询缓存

注意session.clear()的运用,及时清理缓存,尤其在不断分页循环的时候

 

 

1、什么是一级缓存,session级别的缓存

2、什么是二级缓存,SessionFactory级别的缓存,可以跨越session存在
(1)经常被访间
(2)改动不大不会经常改动
(3)数重有限

3、打开二级缓存
(1)hibernate.cfg.xml 设定:
<property name= "cache.use_second_level_cache">true</property>
<property name="cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
<property name="hibernate.cache.provider_configuration_file_resource_path">ehcache.xml</property>

(2)@Cache注解(由hibernate扩展提供)
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE(怎么使用,即可写也可读),region="缓存的名字")
public class Category {

注:使用EhCache二级缓存 需要导入ehcache-1.2.3.jar及commons-logging-1.0.4.jar包
load默认使用二级缓存,iterate默认使用二级缓存
list默认往二级缓存加数据,但是查询的时候不使用

(3)如果要query用二级缓存,需打开查询缓存(查询语句要一样)
<property name="cache.use_query_cache">true</property>
调用Query的setCachable (true)方法指明使用二级缓存
例如:session.createQuery("from Category").setCacheable(true).list();


4   缓存算法:
LRU  LFU  FIFO
Least Recently Used –最近很少被使用
Least Frequently Used (命中率高低)
First In First Out 按顺序替换

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值