关键词不能为空

当前您在: 主页 > 英语 >

ehcache使用文档

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-28 05:52
tags:

-

2021年2月28日发(作者:jerk)



Ehcache


使用文档







作者:兰东平






Email



2


0


1


2



2



























1



基本介绍



1.1



前言



Ehcache


是一个快速的、轻量级的、易于使用的、进程内 的缓存。它支持


read-only



read/write


缓存,


内存和磁盘缓存。


是一个非常轻量级的缓存实现,

< br>而且从



之后就支持了集群,目前的最新版本是。


简单地说来,


ehcache


有以下特点:




快速


.




简单


.




多种缓存策略




缓存数据有两级:内存和磁盘,因此无需担心容量问题




缓存数据会在虚拟机重启的过程中写入磁盘




可以通过


RMI

、可插入


API


等方式进行分布式缓存




具有缓存和缓存管理器的侦听接口




支持多缓存管理器实例,以及一个实例的多个缓存区域




提供


Hibernate


的缓存实现



2



安装和使用



2.1



下载



Ehcache


的官方网站


downl oads/catalog


上面可以下载到各种版本。


目前用 最


新版本是,下载这个版本即可。



下 载之前,会要求用户注册,按照要求输入即






建议下载文件,因为这个文件包含了所有


Ehcache


的内容。



2.2



安装



2.2.1



发布包内容说明



将解压到本地文件系 统。


在安装之前,


我们先来大致看看发布包里边的内容,


如下图所示。


































如一般的开源框架发布包类似,< /p>


ehcahce


的发布包包含以下目录内容:


javadoc



ehcach e



API


文档;


lib



ehcache


要用到的第三方


jar


包和自己的

< p>
jar


包;



licen ses



ehcache


的授权文件;



samples


< br>ehcache


的例子目录;



src



ehcache


的源代码目录 ;



terracotta


:使用


terracotta


集群时的


terra cotta


服务;




ehcache


的配置文件模板,包括各个配置的英文解释;

< br>


:文件的验证文件模板;



: 快速开始文件,会连接到


ehcache


的官方网站;




ehcache


版 本功能和新特性说明文件。



除了阅读本文档快速地学习和了解


ehcache


的功能,也可以通过


e hcache



带的快速开始文件进行学习。

< br>


2.2.2



安装到项目工程



Ehcache


的安装方法比较简单,将解压开的发布包下的


lib /



lib /


lib/


放置


到类路径下面即可使用。如下图所示:






























其中,和两个


jar


包,用于


ehcache


的日志输出,是第三方


jar


包。关于这两



jar


包的用法和功能特性,请查阅


slf4j


框架的相关功能。< /p>



3



开始一个例子



3.1



新建一个空的


java project


工程



通过

< p>
eclipse


向导新建一个


Java Project


工程


ehcache-test



并将上面提的三个


类添加到类路径下。工程如下图所 示:


















其中的


lib


目录,我专门用来存放


jar


包。




3.2



工程中添加配置文件



3.2.1



新建配置文件存放目录




ehcache-test


工程中新 建专门用于存放配置文件的包,根据我们的习惯,


该包取名为“


conf





3.2.2



加入

ehcache


配置文件



在刚才 新建的


conf


包下加入发布包目录下的和两个配置文件。



注意,这两


个配置文件要放在同一目录下 。


如果需要将文件放到其他目录,


需要修改文件中



xsi:noNamespaceSchemaLocation=


配置项




经过以上步骤操作,工程目录结构如下图所示:



3.2.3



修改配置文件内容



正如先前所述,< /p>



ehcache


的配置文件模板,


每一项配置的说明都相当详细。


在修改该配置文件之前,如果大家有 兴趣,不妨先大致看看其中的内容和注释。



为了说明简单,我 们先运行


ehcache


最基本和简单的例子。配置文件内容如


下:



<


xml



v ersion


=



encoding


=



>

< p>



<


ehcache


< br>xmlns:xsi


=
















<


cache



name


=




maxEntriesLocalHeap


=

< br>







maxEntriesLocalDisk

< br>=




eternal

< p>
=




overflowT oDisk


=




diskSpoolBufferSizeMB


=


< p>


timeToIdleSeconds


=




timeToLiveSeconds


=




memory StoreEvictionPolicy


=


< br>


transactionalMode


=




/>





ehcache


>



<


defaultCache



maxEntriesLocalHeap


=




eternal


=

< br>




overflowToDi sk


=




ti meToIdleSeconds


=




timeToLiveSeconds


=



>




d efaultCache


>



xsi: noNamespaceSchemaLocation


=




updateCheck


=




monitoring


=




dynamicConfig


=



>



经过以上步骤操作,我们的工程如下图所示:






















3.3



编写测试类



新建名为“


ehcache


”的包。在“


ehcache


”包下面新建“”类。



文件内容使用


Junit


来编写,所以我们还需要在工程中添加

Junit4


。的内容


很简单,如下:


package


ehcache;




import








*




*


@author


ldp




*




*/



public



class


TestMain {
















}







}



Element element1 =


new


Element(key, value);



(element1);




();








Cache cache1 = (



);



String key =



;



String value = () +



;



@Test



public



void


testF1()


throws


Exception {





URL url =







);



CacheManager manager =


new


CacheManager(url);



以上是一个很简单的测试类,稍后我们再对代码进行分析。



3.4



运行测试类



运行上面的类,输出结果如下:




3.5



代码解析



下面主要对中的

< p>
testF1()


方法进行详细地解析。



代码片段


1







URL url =







);



CacheManager manager =


new


CacheManager(url);



这两行代码根据


conf/


配置文件新建出一个


Cache Manager


对象。也就是说,











Cache Manager
















Ca cheManager


对象实际管理和控制的


cache


对象。



代码片段


2




Cache cache1 = (



通过


CacheManager


对象获取其中的指定缓存


(sampleCache1)



每个缓存以 其


name


属性来区分。



代码片段


3







String key =



;



String value = () +



;



新建一个键值对。



代码片段


4









Element element1 =


new


Element(key, value);



(element1);



新建一个< /p>


Element


对象,该对象以刚才的键值对为数据;再将


Element


对象放入到缓存


sample Cache1


中;


再从缓存


sampl eCache1


中根据键取出存入其


中的


Element


对象。



代码片段


5




();



关闭


CacheManager


对象,程序运行结束。



4



Ehcache


的基本原理



通过以上的一个简单的例子,我们已经大体了解了一些


Ehcache< /p>


的原理。接


下来,我们再比较详细地了解下


Ehcache


的原理。



4.1



整体结构



Ehcache


的类层次模型主要为三层,最上层的是


CacheManager


,他是操作


Ehcache


的入口。我们可以 通过


()


获得一个单个的


CacheM anager


,或者通过


CacheManager

< p>
的构造函数创建一个新的


CacheManager


。每个


CacheManager



管理着多个


Cache



而每个


Cache


都以一种类


Hash


的方式,


关联着多个


Elemenat




Element


则是我 们用于存放要缓存内容的地方。



Ehcache


的整体结构图如下图所示。




































ehcache


的刷新策略



ehcache


的刷新策略是当缓存在放入的时候记录一个放入时间,它 是用


Lazy


Evict


的方式,在 取的时候同设置的


TTL


比较。



ehcache


缓存的


3

< br>种清空策略:




FIFO


,先进先出




LFU


,最少被使用,缓存的元素有 一个


hit


属性,


hit


值最小的将会被清出


缓存。




LRU


,最近最少使用的,缓存的元 素有一个时间戳,当缓存容量满了,而


又需要腾出地方来缓存新的元素的时候,那么现有 缓存元素中时间戳离


当前时间最远的元素将被清出缓存。



事件处理



可以为

CacheManager


添加事件监听,当对


Cache Manager


增删


Cache


时,< /p>


事件处理器将会得到通知。要配置事件处理,


需要通过

< p>
ehcache


的配置文件来完


成。



可以为


Cache


添加事 件监听,当对


Cache


增删


Elem ent


时,事件处理器将会


得到通知。要配置事件处理,需要通 过


ehcache


的配置文件来完成。



4.2



CacheManager



如上文所 述,


CacheManager


是操作


Ehcache


的入口。其类结构如下:




对于


CacheManager


,我么重点了解它的构造函数。我们可以有两种模式来


创建


CacheManager


,单例


(Singl eton)


和多例


(Instance)




单例创建


CacheManag er


是指通过


()


方法或者无参的构造 函数


CacheManager()


创建一个

< br>CacheManager


对象。


这种情况下,系统会在 最顶层的


classpath


路径下


找 名叫的配置文件,


如果查找失败,


会以包中的文件


(里边的缓存配置极其简单)


替代。同时,一个警告会提醒用户建立自己的配 置文件。



测试代码(添加在


ehcache- test


工程的中,以下同是)










@Test



public



void


testF2()


throws


Exception {








CacheManager manager = new CacheManager();



(



Cache cache1 = (



String key =



String value = () +



;



Element element1 =


new


Element(key, value);








(element1);




}




();



执行结果如下图所示:





































同时,我们也可以看到,当我们用 代码“


(


”向


CacheManage r


中加入缓存时,系统会自动用中的



项的配置创建出一个


name


为< /p>



sampleCache1


”的


cache




多例 创建


CacheManager


的方法和先前的


testF1()


方法一致。


CacheManage r


支持多种方式创建:


Configuration

< p>
对象、


InputStream


对象、

< p>
配置文件路径字符串



URL

对象。如果大家有兴趣,都可以去尝试一下。



特别地,< /p>


对于多例创建


CacheManager



我们需要指定


CacheManager


name


属性,系统不允许多个相同

name



CacheManager

存在;另外,对于一些资源,


如当设置了


cache


内存占用空间满了后,就将缓存数据存放到物理硬盘上


(Cache< /p>



overflowToDisk


属性< /p>


)



每个


Cac heManager


对象的


diskStore


配置路径不能有重


复。关于


diskStore


的详细配置说明,请参照模板文件。



4.3



Ehcache


接口



所有的


cache


都实现此接口,每个


cache


有自己的


name


和其他属性,


cache


中存放


Ele ment


对象数据。


Cache


中的< /p>


Element


对象一般存储在


Memo ryStore



边,我们也可以配置将其存储到


DiskStore


配置指定的文件路径下边。该接口的

结构如下:


-


-


-


-


-


-


-


-



本文更新与2021-02-28 05:52,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/679087.html

ehcache使用文档的相关文章

  • 爱心与尊严的高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊严高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊重的作文题库

    1.作文关爱与尊重议论文 如果说没有爱就没有教育的话,那么离开了尊重同样也谈不上教育。 因为每一位孩子都渴望得到他人的尊重,尤其是教师的尊重。可是在现实生活中,不时会有

    小学作文
  • 爱心责任100字作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任心的作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文