持久层缓存范围

来源:互联网 发布:腾讯电脑软件管家 编辑:程序博客网 时间:2024/06/04 23:32

由于数据库的访问造成的性能问题,数据缓存的价值显得尤为重要,而持久层缓存的范围又决定了缓存的生命周期和访问维护


事务级缓存(一级缓存)

   在当前事务Session(数据库或应用事务)范围内的数据缓存。基于生命周期实现的,在每一个Session会在内部维护一个数据缓存,随着Session事务的创建而创建,销毁而销毁。   在同一个事务缓存中,每一个持久化类的对象都是唯一的。

应用级缓存(二级缓存)

   缓存被应用进程内的所有事务所共享,这些事务可能会并发访问缓存。这种情况下就要采用事务的隔离机制。一般由SessionFactory实现,所有用同一个SessionFactory创建的Session对象共享此缓存。   在一级缓存失效时,二级缓存生效。   放入缓存的对象需实现Serializable接口。   采用延迟加载技术,即访问该数据时,先返回一个代理对象,等真正访问数据的具体属性或方法时,才连接数据库进行数据查询。   放入缓存的数据一般有以下特点:       1.数据量小;       2.并发访问少;       3.修改率低;

分布式(集群)缓存

   在分布式环境下,缓存被同一个机器或多个机器上的多个进程共享,缓存中的数据被复制到集群环境中的每个进程节点。进程之间通过远程通讯来保证缓存中数据的一致性,从而实现数据同步。分布式缓存可以很好的解决并发访问的情况下数据同步的问题。   但是分布式缓存不一定能提高系统性能,因为利用远程通讯的方式在访问速度上会很有损耗。
0 0
原创粉丝点击