1.什么事缓存?
指为了降低应用程序对物理数据源(mysql)访问数次。从而提高应用程序的运行性能
2.为什么需要缓存?
ORM框架--去访问数据库的速度,直接影响到程序的运行速度。所以优化ORM访问效率比较重要。
hibernate的缓存是提升和优化Hibernate访问效率。
3.缓存工作原理?
4.一级缓存?
session缓存,会话缓存。
2.通过session查询数据库时,查出数据存储在内存中。下次查询相同数据时,就可以直接在缓存中读取。
3.一级缓存生命周期与session相同。session销毁,一级缓存也销毁。
4.一级缓存只适合当前连接之内。
5.一级缓存API?
一级缓存是无法取消,管理“”:
1.evict():实际就是指定要清除的对象。
2.clear():清除所有对象。
3.对程序的性能有一定的影响
6.二级缓存?
1. 添加二级缓存的jar包。
2. 在hibernate.cfg配置文件中添加Provider类的描述。
<property name="cache.provider_class">net.sf.ehcache.hibernate.EhCacheProvider</property>
3.在实体映射文件hbm.xml中添加 <cache/>开启
<cache usage="read-only"/>
<cache usage="read-only" include="all" region=""/>
region:指定二级缓存的域名:
include:指定是否缓存延迟加载,all表示缓存所有对象,on-lazy表示不延迟加载
7.一级缓存与二级缓存区别?
二级缓存:全局缓存,应用级缓存。适用当前的所有会话,
什么情况下适用二级缓存?
很少被修改的数据。不是很重要的数据,允许偶尔并发的数据。不会被并发访问的数据。参考数据
*******
hibernate缓存提高了查询效率时,也增加了服务器的消耗。注意缓存的使用方式。