记录使用EHCache实现页面级的缓存以及完成集群设计的过程。
文档介绍文档目的为以后更加的了解和熟悉缓存技术所编写。文档范围包含了ehcache缓存技术相关的内容,实现页面级的缓存以及完成集群设计的过程。读者对象任何感兴趣的开发技术人员参考文献大部分都是网络上查询的资料,很多,不列举了。
记录使用EHCache实现页面级的缓存以及完成集群设计的过程。记录使用EHCache实现页面级的缓存以及完成集群设计的过程。EHCache是一个快速的、轻量级的、易于使用的、进程内的缓存。它支持read-only和read/write缓存,内存和磁盘缓存。是一个非常轻量级的缓存实现,而且从1.2 之后就支持了集群
缓冲区可以理解为内存中临时存放缓冲对象的一个区域,使用缓冲区可以改善某些应用的性能。每个应用根据自身需要,可以定义多个缓冲区,各个缓冲区具有不同的属性,比如缓冲区大小、缓冲过期时间、缓冲区构架等等。不同类型的对象放在不同的缓冲区中以满足不同的需要。
JCS是Jakarta的项目Turbine的子项目。是一个复合式的缓冲工具,JCS提供 基于LRU算法的内存缓存、索引式磁盘缓存、JDBC 磁盘缓存、TCP协议并行缓存、RMI远程缓存。JCS可以将将对象缓冲到内存、硬盘、也可将缓存中的数据持久化至硬盘。JCS可以为 频繁访问的对象提供动态对象池的方法,通过设置对象过期时间,并提供了好几种缓存替代算法。
Cache是一种用于提高系统响应速度、改善系统运行性能的技术。尤其是在Web应用中,通过缓存页面的输出结果,可以很显著的改善系统运行性能。 OSCache标记库由OpenSymphony设计,它是一种开创性的缓存方案,它提供了在现有JSP页面之内实现内存缓存的功能。OSCache是个一个被广泛采用的高性能的J2EE缓存框架,OSCache还能应用于任何Java应用程序的普通的缓存解决方案。
OSCache是当前运用最广的缓存方案,JBoss,Hibernate,Spring等都对其有支持。
ehcache的默认配置文件名为ehcache.xml,也可以自己指定。配置文件比较的简单,基本上也就是常用的几个元素。
OSCache是一个开放式资源缓冲库,可从免费下载。它包括一组JSP的标签,通过它们可以很容易的在你的程序中实现页面缓存,同时,还可以使用它的过滤器,可缓冲的不仅仅是JSP页面,还可以缓存任何Servlet生成的内容。
单调性是指如果已经有一些内容通过哈希分派到了相应的缓冲中,又有新的缓冲加入到系统中。哈希的结果应能够保证原有已分配的内容可以被映射到新的缓冲中去,而不会被映射到旧的缓冲集合中的其他缓冲区。 consistent hashing 是一种 hash 算法,简单的说,在移除 / 添加一个 cache 时,它能够尽可能小的改变已存在 key 映射关系,尽可能的满足单调性的要求。
记录使用EHCache实现页面级的缓存以及完成集群设计的过程。EHCache是一个快速的、轻量级的、易于使用的、进程内的缓存。它支持read-only和read/write缓存,内存和磁盘缓存。是一个非常轻量级的缓存实现,而且从1.2 之后就支持了集群,目前的最新版本是2.1。
ehcache的默认配置文件名为ehcache.xml,也可以自己指定。配置文件比较的简单,基本上也就是常用的几个元素。配置元素说明:diskStore:配置DiskStore,当需要使用磁盘保存的时候,需要对象实现序列化接口。
EHCache 是一个快速的、轻量级的、易于使用的、进程内的缓 存。它支持 read-only 和 read/write 缓存,内存和磁盘缓存。是 一个非常轻量级的缓存实现,而且从 1.2 之后就支持了集群。
EHCache的特点,是一个纯Java,过程中(也可以理解成插入式)缓存实现,单独安装Ehcache,需把ehcache-X.X.jar和相关类库方到classpath中。如项目已安装了Hibernate,则不需要做什么。直接可以使用Ehcache 。
目录:1、带着问题来,带着答案走。2、JAVA内存体系介绍。3、基本缓存的使用。4、缓存框架的介绍。5、内存溢出状况分析。6、内存检查工具的使用。
XMemcached是什么?经常碰到的一个问题是很多朋友对memcached不了解,误以为xmemcached本身是一个缓存系统。Memcached是一个开源的,C写的分布式key-value缓存,XMemcached只是它的一个访问客户端。Memcached通过网络协议跟客户端交互,通过客户端你才可以去使用memcached,xmemcached是它的java客户端之一。
Cache的配置很灵活,官方提供的Cache配置方式有好几种。你可以通过声明配置、在xml中配置、在程序里配置或者调用构造方法时传入不同的参数。你可以将Cache的配置从代码中剥离出来,也可以在使用运行时配置,所谓的运行时配置无非也就是在代码中配置。
EHCache的特点,是一个纯Java,过程中(也可以理解成插入式)缓存实现。
使用JBoss Core Cache的缺点以整个Object为单位进行存储。该Object的任何一个字段发生变化都需要手动更新缓存中的Object。如果是一个状态经常发生变化的Object,那么将要频繁的进行序列化。会很影响性能。对象之间的引用关系会被序列化打破。比如一个实例A分别被实例B和实例C引用。当把B和C放入Cache以后,实例A将会为实例B和实例C分别复制一份。<br>使用JBoss POJO Cache的优点放入POJO Cache中的Object不需要实现序列化接口。只有被改变的字段被复制。对象的引用关系是受保护的。一旦Object被放入POJO Cache中,所有对该Object的改变,将自动更新到POJO Cache中。注:POJO Cache是扩展自CoreCache。因此他继承了Core Cache的所有功能。JBoss POJO Cache的特性复制机制的优化:当Cache中的POJO对象的某一个字段发生变化时,一个复制请求将被发出,这个请求中带有标识这个发生变化的字段的key。这样就不用复制整个对象,在性能上有一定提高。如果发生变化的是一个HashMap中的某一个元素。那么就只复制这个元素,而不是整个HashMap。支持事务机制:在事务没有提交之前是不会更新Cache中的数据的。钝化:当一个对象被放入Cache中,Cache将会存储所有被该对象应用的对象。Java对象的引用关系是受到保护的,当对象被放入Cache中,使用者是不需要声明对象的之间的对应关系的,比如一对一,一对多。同一个POJO对象放入到Cache中,无论从哪一个结点拿到的引用都是相同的。当一个子类POJO对象被放入到Cache中,他的父类字段也被映射了。一旦Object被放入POJO Cache中,所有对该Object的改变,将自动更新到POJO Cache中,不需要任何手动API调用。
OSCache是OpenSymphony这个开源项目众多Projects中的一个。他是一个高效的J2EE缓存框架,能够很好的解决动态网站速度的问题。下面来 看下OSCache解决了动态网站的哪些令人郁闷的问题。 1.缓存动态内容:其实我们的动态网页上一般只有一部分是动态的(表头,表尾一般是不变的),如果我们缓存整个网页显然不成,因为有部分是 随着请求有可能变的。OSCache提供的方式是允许我们只缓存一部分网页。 2.缓存2进制内容:产生的图片和PDF文件在服务器加载的时候非常的耗时。OSCache解决这个问题是通过一个Servlet2.3的缓存过滤功能,然后能 够缓存任意的URI(比如一个完整的页面或者是一个产生的图片/PDF文件) 3.容错:有这种情况或许我们会遇到,就是当一个动态的网页出现错误。即便我们的页面有95%都加载完毕,但就是由于这个错误,整个页面就会 返回错误的提示或页面。OSCache允许我们提供出现错误时的缓存内容,如果出现就适时的提示出来了。