辛星简单比较下Hibernate中的一级缓存和二级缓存

       1.按照存放数据的形式:一级缓存是相互关联的持久化对象,而二级缓存则是数据的散装对象。

        2.按照缓存的范围:一级缓存通常是事务范围,每个事务都有单独的一级缓存,而二级缓存则是进程范围或者是集群范围,缓存被同一个进程或者集群范围中的所有事务共享

        3.按照并发访问策略,一级缓存由于每个事务都拥有单独的一级缓存,因此不会出现并发问题,因此无须提供并发访问策略。二级缓存由于多个事务会同时访问二级缓存中的相同数据,因此必须提供适当的并发访问策略,来保证特定的事务隔离级别。

        4.按照数据过期策略,处于一级缓存中的对象永远不会过期,除非应用程序显示的晴空,而二级缓存则必须提供过期策略,比如基于 内存的缓存中对象的最大数目,允许对象处于缓存中的最长时间,以及允许对象处于缓存中的最长空闲时间。

        5.按照物理介质来分,一级缓存肯定是保存在内存中,而二级缓存则可以保存在内存或硬盘上,对象的散装数据首先存放到基于 内存的缓存中,当内存中对象的数目达到数据过期策略的最大值的时候,就会把其余的对象写入到硬盘上。

       6.按照软件实现来分,一级缓存由Hibernate的Session实现中自带,二级缓存则是需要使用插件,Hibernate提供了缓存适配器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值