Hibernate 缓存
时间:2010-10-22 来源:juxiangwu
1、什么是持久层缓存
2、持久层缓存的级别
持久层的缓存可以按照项目实际需要,按照缓存范围的大小或者粒度,可以分为3个级别:
(1)、事务级别
事务级别缓存中的缓存对象只能被当前事务使用,每个事务都有各自的缓存,缓存中的数据通常以关联对象的形式保存。同时被缓存对象的生命周期依赖于当前事务的生命周期,当前事务结束时,该缓存中对象的生命周期也会结束。事务级别的缓存通常使用内存作为保存缓存对象的存储介质,Hibernate的一级缓存(Session缓存)是事务级的缓存。
(2)、应用(进程)级别
应用(进程)级别的缓存中的缓存对象可以被当前应用(进程)内所有事务共享访问,被缓存的对象生命周期与当前应用相同。当应用结束时,缓存对象的生命周期结束。如果当前应用是一个分布式的应用,则不能使用该级别的缓存,这种级别的缓存使用内存或硬盘作为缓存对象的存储介质。
(3)、分布式级别
如果当前应用部署在多台服务器的分布式(集群)环境下,则当前应用可以使用分布式级别的缓存持久化对象。分布式缓存中缓存的数据会被一台或多台服务共享。如果缓存数据发生变化,则更新后的缓存数据会同步到集群中的每台服务中,进而保证缓存数据的一致性。
Hibernate的二级缓存可以是应用级别或分布式级别的缓存,完全依赖于第三方组件的具体实现。
2、持久层缓存的级别
持久层的缓存可以按照项目实际需要,按照缓存范围的大小或者粒度,可以分为3个级别:
(1)、事务级别
事务级别缓存中的缓存对象只能被当前事务使用,每个事务都有各自的缓存,缓存中的数据通常以关联对象的形式保存。同时被缓存对象的生命周期依赖于当前事务的生命周期,当前事务结束时,该缓存中对象的生命周期也会结束。事务级别的缓存通常使用内存作为保存缓存对象的存储介质,Hibernate的一级缓存(Session缓存)是事务级的缓存。
(2)、应用(进程)级别
应用(进程)级别的缓存中的缓存对象可以被当前应用(进程)内所有事务共享访问,被缓存的对象生命周期与当前应用相同。当应用结束时,缓存对象的生命周期结束。如果当前应用是一个分布式的应用,则不能使用该级别的缓存,这种级别的缓存使用内存或硬盘作为缓存对象的存储介质。
(3)、分布式级别
如果当前应用部署在多台服务器的分布式(集群)环境下,则当前应用可以使用分布式级别的缓存持久化对象。分布式缓存中缓存的数据会被一台或多台服务共享。如果缓存数据发生变化,则更新后的缓存数据会同步到集群中的每台服务中,进而保证缓存数据的一致性。
Hibernate的二级缓存可以是应用级别或分布式级别的缓存,完全依赖于第三方组件的具体实现。
相关阅读 更多 +
排行榜 更多 +