课程概要:
1.Hibernate一级缓存
2.Hibernate二级缓存和应用
3.Hibernate查询缓存
一、Hibernate一级缓存
什么是缓存?
缓存(Cache)就是一块存储区域,其作用就是降低应用程序直接读写永久性数据源的频率,从而提高应用的运行性能。
Hibernate提供了两级缓存:
第一级缓存:session
第二级缓存:session factory
一级缓存的工作机制:
解释说明:
将内存分为两大块,一个是session的实例,一个是session对应的缓存空间。当在Hibernate里面创建一个session对象时,如果你对其进行了操作,那么你得到的数据就将放在session对象所对应的一片内存空间,这也成为持久化的数据。
session提供了管理缓存的方法:
flush(): 把缓存更新到数据库中。
evict(Object obj):清除指定对象的缓存。
clear():清理缓存。
二、Hibernate二级缓存
一级session是内置的,并且由Hibernate自己进行第一级数据的缓存和维护,第一级缓存的生命周期往往是很短的,当我们把session关闭掉,第一级缓存也就被关掉了。如果我们想进一步提升HIbernate的性能,我们可以声明他的二级缓存。
Hibernate本身并不提供二级缓存的机制,而是需要第三方实现二级缓存。
什么数据更适合存放在第二级缓存中?
很少被修改的数据
不是很重要的数据,允许偶尔并发的数据
不会被并发访问的数据