1、事务级缓存
对于hibernate而言,事务级缓存是基于Session生命周期实现的,每个Session会在内部维持一个数据缓存,随着Session产生而产生,销毁而销毁,也称为Session Level Cache
2、应用级缓存
此缓存可被多个事务共享。在hibernate中,应用级缓存在SessionFactory层实现,所有由此SessionFactory创建的Session都共享此缓存,也称为SessionFactory Level Cache。注意点:不能用于多实例并发运行的环境(如多机负载均衡环境)中,因为两个实例各自维护自己的缓存,而调用的数据库是同一个,这样的话如果没有好的数据同步机制就会出现问题,这种情况下要引入分布式缓存。
3、分布式缓存
由多个应用级缓存组成集群,通过某种机制实现各个缓存实例的数据同步。注意点:除非对于并发读取性能要求较高,否则分布式缓存的实际效果尚需考证。每个缓存实例的变动会赋值到其余所有节点中,这样的远程同步的开销不可忽视。