Hibernate作为JPA规范的其中一种ROM框架实现,在轻量级企业应用开发中有一定的应用份额。下面介绍下关于其缓存机制:
缓存目的:
在数据量很大时,请求数据库物理数据过多,会产生响应延迟等问题,影响系统整体性能。通过缓存减少访问次数,提高性能。
Hibernate缓存分为:
一级缓存、二级缓存
区别:
一级缓存中,存储修改、访问相对频繁,且多线程公用,且无并发的数据资源;
二级缓存中,存储修改相对较少,常量,存在并发现象的数据资源;
原因:
一级缓存,是session,相对数据库事务或应用事务,其不存在并发现象;
二级缓存,是sessionFactory,相对是一个进程或集群,其中数据有多线程公用,并存在事务等级和并发策略;
Hibernate应用缓存过程:
首先会访问一级缓存,(缓存中每条记录都有唯一的OID)其中无数据,继续访问二级缓存,其中也不存在时,访问数据库进行操作,并刷新缓存。
注:二级缓存是可选的,属于可配置的插件;
详细介绍如下: