Hibernate_缓存技术,一,二,三级

1         listiterate不同之处(//主要为了面试  详见hibernate_2900_Hibernate_list_iterate

a)         list取所有

b)         iterate先取 ID,等用到的时候再根据ID来取对象

c)         sessionlist第二次发出,仍会到数据库査询

d)         iterate 第二次,首先找session 级缓存

2         一级缓存和二级缓存和査询缓存(面试题)(详见hibernate_3000_Hibernate_3KindsOf_Cache)

a)         什么是缓存

b)         什么是一级缓存,session级别的缓存

c)         I什么是二级缓存,SessionFactory级别的缓存,可以跨越session存在

                      i.        经常被访间

                  ii.        改动不大不会经常改动

               iii.        数重有限

d)         打开二级缓存

                      i.        hibernate.cfg.xml 设定:

<property

name= "cache.use_second_level_cache">true</property>

<property

name="cache.provider_class">org.hibernate.cache.EhCacheProvider</property>

                  ii.        @Cache注解(hibernate扩展提供)

@Cache(usage=CacheConcurrencyStrategy.READ_WRITE)

 

注:使用EhCache二级缓存 需要导入ehcache-1.2.3.jarcommons-logging-1.0.4.jar

e)         load默认使用二级缓存,iterate默认使用二级缓存

f)         list默认往二级缓存加数据,但是查询的时候不使用

g)         如果要query用二级缓存,需打开查询缓存

<property name="cache.use_query_cache">true</property>

调用QuerysetCachable (true)方法指明使用二级缓存

例如:session.createQuery("from Category").setCacheable(true).list();

h)         缓存算法:(纯为了面试)

                      i.        LRU  LFU  FIFO

1.             Least Recently Used 最近很少被使用

2.             Least Frequently Used (命中率高低)

3.             First In First Out 按顺序替换

                  ii.        memoryStoreEvictionPolicy = "LRU" (ehcache.xml中配置)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值