ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 数据缓存(一级缓存,二级缓存,第三方缓存) (转)

数据缓存(一级缓存,二级缓存,第三方缓存) (转)

原创 Linux操作系统 作者:chinajava1314 时间:2009-03-11 14:44:32 0 删除 编辑

首先要知道为什么要缓存,我们的项目往往要数据库不会布署在同一个服务器上,那么如果我们的项目要频烦的操作数据库如果没有缓存,速度就会很慢,因为每访问都是一次远程调用,Socket的创建和销毁,数据的打包和拆包,数据查询命令,网络的延时,等等。     

那下面说说缓存。缓存就是把数据库的数据在本地建一个备份放进内存。我们在次查找数据库的时候就先去本地内存中查找,这样相对起来,缓存的好处就一目了然了。   

  

缓存分为三类   

 事务级缓存    相当于一个session.   

应用级缓存    sessionFactory,可由多个事务共享也就是由多个sesion共享。   

分布级缓存    多个JVM之间共享    目前为止分布级缓存只有EJB做的最好了。Hibernate这一块并不好。   

Hibernate数据缓存   

Hibernate的数据缓存分为两个层次,    内部缓存(Session level,也叫一级缓存也叫是事务级缓存)    二级缓存(SessionFactory level)    内部缓存正常情况下由Hibernate自动维护如果需要手动干预。我们可以通过   Session.evict;    将某个特定对象从内部缓存中清除    Session.clear    清空内部缓存    这些都是在没有分布式缓存的情况下使用的。    数据库没有被其他应用程序共享。    项目没有部署到集群环境中。    第三方缓存的实现    JCS是apache提供的但是在某些情况下可能导致内存泄漏以及死锁    常用的是ehcache,相比jcs,ehcache更加稳定并具备更好的缓存调度性能。但是对分布式缓存没有支持。   

为什么引入第三缓存    Hibernate本身并没有提供二级缓存的产品化实现,只是提供了一个基于hashtable的简单缓存经供调试,而提供了接口,让众多第三方缓存组件实现  

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9952596/viewspace-566806/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-02-17

  • 博文量
    17
  • 访问量
    14999