`
刘小小尘
  • 浏览: 67559 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ehcache配置文件详解

 
阅读更多

Ehcache缓存配置方法

Cache的配置很灵活,官方提供的Cache配置方式有好几种。你可以通过声明配置、在xml中配置、在程序里配置或者调用构造方法时传入不同的参数。

你可以将Cache的配置从代码中剥离出来,也可以在使用运行时配置,所谓的运行时配置无非也就是在代码中配置。以下是运行时配置的好处:

在同一个地方配置所有的Cache,这样很容易管理Cache的内存和磁盘消耗。

发布时可更改Cache配置。

可再安装阶段就检查出配置错误信息,而避免了运行时错误。

本文将会对ehcache.xml配置文件进行详细的阐述。在配置的时可以拷贝一个现有的ehcache.xml,如果没有请点击这里去下载。

ehcache-failsafe.xml

如果你调用了CacheManager默认构造方法去创建CacheManager的实例,此方法会到classpath中找ehcache.xml文件,否则它会到类路径下找ehcache-failsafe.xml文件。而ehcache-failsafe.xml被包含在jar包中,所有它肯定能找的到。

ehcache-failsafe.xml提供了一个非常简单的默认配置,这样可以使用户在没有创建ehcache.xml的情况下使用Ehcache。

不过这样做Ehcache会提醒用户创建一个正确的Ehcache配置。

ehcache.xml片段:

<ehcache>

<diskStore path="java.io.tmpdir"/>

<defaultCache

maxElementsInMemory="10000"

eternal="false"

timeToIdleSeconds="120"

timeToLiveSeconds="120"

overflowToDisk="true"

maxElementsOnDisk="10000000"

diskPersistent="false"

diskExpiryThreadIntervalSeconds="120"

memoryStoreEvictionPolicy="LRU"

/>

</ehcache>

ehcache.xml和其他配置文件

在Ehcache-1.6之前的版本,只支持ASCII编码的ehcache.xml配置文件。在Ehcach-1.6之后版本中,支持UTF8编码的ehcache.xml配置文件。因为向后兼容,所有采用ASCII编码的配置文件完全没有必要转换为UTF8。

一个CacheManager必须要有一个XML配置。由于磁盘路径或是监听端口,多个CacheManager使用同一个配置文件时会出现错误。

下面是ehcache.xml具体实例以及配置指南

<ehcachexmlns:xsi=http://www.w3.org/2001/XMLSchema-instance

CacheManager配置

DmulticastGroupPort=4446,这样可以配置监听端口。

DiskStore配置

如果你使用的DiskStore(磁盘缓存),你必须要配置DiskStore配置项。如果不配置,Ehcache将会使用java.io.tmpdir。

diskStroe的“path”属性是用来配置磁盘缓存使用的物理路径的,Ehcache磁盘缓存使用的文件后缀名是.data和.index。

<disStore path=”java.io.tmpdir”/>

CacheManagerEventListener配置

我们通过CacheManagerEventListenerFactory可以实例化一个CacheManagerPeerProvider,当我们从CacheManager中added和removedCache时,将通知CacheManagerPeerProvider,这样一来,我们就可以很方面的对CacheManager中的Cache做一些统计。

注册到CacheManager的事件监听类名有:adding a Cache和removing a Cache

<cacheManagerEventListenerFacotory class=””properties=””/>

CacheManagerPeerProvider配置

在集群中CacheManager配置CacheManagerPeerProviderFactory创建CacheManagerPeerProvider。具体的实例如下:

<cacheManagerPeerProviderFactoryclass="net.sf.ehcache.distribution.

RMICacheManagerPeerProviderFactory"

properties="peerDiscovery=manual,rmiUrls=//server1:40000/sampleCache1|//server2:40000/sampleCache1|//server1:40000/sampleCache2|//server2:40000/sampleCache2"

propertySeparator="," />

CacheManagerPeerListener配置

CacheManagerPeerListener配置是用来监听集群中缓存消息的分发的。

<cacheManagerPeerListenerFactory

class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"

properties="hostName=fully_qualified_hostname_or_ip,

port=40001,

socketTimeoutMillis=120000"

propertySeparator="," />

Cache配置

name:Cache的唯一标识

maxElementsInMemory:内存中最大缓存对象数。

maxElementsOnDisk:磁盘中最大缓存对象数,若是0表示无穷大。

eternal:Element是否永久有效,一但设置了,timeout将不起作用。

overflowToDisk:配置此属性,当内存中Element数量达到maxElementsInMemory时,Ehcache将会Element写到磁盘中。

timeToIdleSeconds:设置Element在失效前的允许闲置时间。仅当element不是永久有效时使用,可选属性,默认值是0,也就是可闲置时间无穷大。

timeToLiveSeconds:设置Element在失效前允许存活时间。最大时间介于创建时间和失效时间之间。仅当element不是永久有效时使用,默认是0.,也就是element存活时间无穷大。

diskPersistent:是否缓存虚拟机重启期数据。(这个虚拟机是指什么虚拟机一直没看明白是什么,有高人还希望能指点一二)。

diskExpiryThreadIntervalSeconds:磁盘失效线程运行时间间隔,默认是120秒。

diskSpoolBufferSizeMB:这个参数设置DiskStore(磁盘缓存)的缓存区大小。默认是30MB。每个Cache都应该有自己的一个缓冲区。

memoryStoreEvictionPolicy:当达到maxElementsInMemory限制时,Ehcache将会根据指定的策略去清理内存。默认策略是LRU(最近最少使用)。你可以设置为FIFO(先进先出)或是LFU(较少使用)。这里比较遗憾,Ehcache并没有提供一个用户定制策略的接口,仅仅支持三种指定策略,感觉做的不够理想。

Cache Exception Handling配置

<cacheExceptionHandlerFactoryclass="com.example.ExampleExceptionHandlerFactory"properties="logLevel=FINE"/>

总结

这里只对通用缓存的配置做了详细的阐述,至于RMI缓存和集群缓存可以参考这里

下面给出几个配置示例:

Ehcache默认Cache配置

<defaultCache

maxElementsInMemory="10000"

eternal="false"

timeToIdleSeconds="120"

timeToLiveSeconds="120"

overflowToDisk="true"

diskSpoolBufferSizeMB="30"

maxElementsOnDisk="10000000"

diskPersistent="false"

diskExpiryThreadIntervalSeconds="120"

memoryStoreEvictionPolicy="LRU"

/>

SampleCache1配置

简单配置,在ehcache.xml文件中有此配置,在使用Ehcache前最好将其删除掉,自己配置。

缓存名sampleCache1,内存中最多可缓存10000个Element,其中的element会在闲置5分钟或是存活10分钟之后失效。

超过10000element时,element将会输出到磁盘中,输出路径是java.io.tmpdir。

<cache name="sampleCache1"

maxElementsInMemory="10000"

maxElementsOnDisk="1000"

eternal="false"

overflowToDisk="true"

diskSpoolBufferSizeMB="20"

timeToIdleSeconds="300"

timeToLiveSeconds="600"

memoryStoreEvictionPolicy="LFU"

/>

SampleCache2配置

Cache名为SampleCache2,内存中最多可以缓存1000个element,超出1000不能输出到磁盘中。缓存是永久有效的。

<cache name="sampleCache2"

maxElementsInMemory="1000"

eternal="true"

overflowToDisk="false"

memoryStoreEvictionPolicy="FIFO"

/>

SampleCache3配置

Cache名为SampleCache3。可缓存到磁盘。磁盘缓存将会缓存虚拟机重启期的数据。磁盘缓存失效线程运行间隔时间是10分钟。

<cache name="sampleCache3"

maxElementsInMemory="500"

eternal="false"

overflowToDisk="true"

timeToIdleSeconds="300"

timeToLiveSeconds="600"

diskPersistent="true"

diskExpiryThreadIntervalSeconds="1"

memoryStoreEvictionPolicy="LFU"

/>

sampleDistributedCache1配置

Cache名为sampleDistributedCache1。

<cache name="sampleDistributedCache1"

maxElementsInMemory="10"

eternal="false"

timeToIdleSeconds="100"

timeToLiveSeconds="100"

overflowToDisk="false">

<cacheEventListenerFactory

class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"/>

<bootstrapCacheLoaderFactory

class="net.sf.ehcache.distribution.RMIBootstrapCacheLoaderFactory"/>

</cache>

sampleDistributedCache2配置


分享到:
评论

相关推荐

    ehcache的配置参数详解

    本文将深入探讨ehcache.xml配置文件中的关键参数及其作用,帮助开发者更有效地管理和优化缓存策略。 ### 1. `defaultCache` 标签 `defaultCache` 是ehcache.xml中一个重要的标签,用于定义所有未显式指定缓存策略...

    ehcache配置使用详解

    ### ehcache配置使用详解 #### 一、ehcache概述与特性 **背景介绍:** 缓存作为提升系统响应速度和降低数据库压力的关键技术,在现代软件架构中占据着重要位置。ehcache,作为一款高性能的开源Java缓存框架,旨在...

    集群环境中使用_EhCache_缓存系统&Ehcache配置文件的详细说明

    三、EhCache配置文件详解 EhCache的配置主要通过`ehcache.xml`文件进行。以下是一些关键配置元素: 1. `&lt;cache&gt;`元素:定义一个缓存区域,包括缓存名称、最大元素数、内存和磁盘存储策略等。例如: ```xml ...

    ehcache缓存配置详解

    ehcache 缓存配置详解 Ehcache 是一个流行的 Java 缓存框架,提供了强大的缓存机制,帮助开发者提高应用程序的性能和可扩展性。 Ehcache 的配置主要包括 diskstore、defaultCache、cache 三个部分,这三个部分的...

    Ehcache集群环境配置

    #### 二、Ehcache 配置文件详解 配置文件 `ehcache.xml` 是 Ehcache 配置的核心。下面详细介绍该配置文件的组成部分及其含义: 1. **XML 声明与 Ehcache 根元素**: ```xml &lt;ehcache xmlns:xsi=...

    ehcache二级缓存配置文件

    2. 在Spring配置文件中配置Ehcache缓存管理器。 3. 在需要缓存的方法或类上添加`@Cacheable`、`@CacheEvict`等注解。 4. 可选:配置缓存切面,如`@EnableCaching`。 **5. 性能优化** - 选择合适的缓存策略(LRU、...

    ehcache使用详解

    在配置文件中,我们可以定义缓存的各个属性,如缓存的最大大小、存活时间和过期时间。例如: ```xml maxEntriesLocalHeap="10000" timeToLiveSeconds="300"&gt; ``` 这里,`maxEntriesLocalHeap` 指定了内存中...

    EHCache技术文档详解.doc

    2.3 EHCACHE配置文件中元素说明 配置文件中包含、、、等元素,分别用于定义缓存、默认缓存参数、磁盘存储设置和事务管理器查找。 2.4 在工程中单独使用 通过CacheManager获取或创建Cache实例,然后添加、检索、更新...

    EHCache 分布式配置文件

    **EHCache 分布式配置文件详解** EHCache 是一个开源的 Java 缓存库,它提供了内存和磁盘缓存的解决方案,广泛应用于提高应用程序性能,尤其是在数据访问层。分布式配置文件是 EHCache 实现多节点共享缓存的关键,...

    EHCache技术文档详解

    - **ehcache.xml**:这是EHCache的主要配置文件,定义了缓存管理器、缓存区域和其他相关设置。 - **缓存大小**:可以通过设置`maxElementsInMemory`来限制缓存中元素的最大数量。 - **持久化**:通过`diskStore`...

    ehcache技术详解

    3. **配置文件**:创建 `ehcache.xml` 文件并放置于项目的 `src` 目录下。该文件用于配置缓存行为和参数。 #### 配置详解 `ehcache.xml` 文件示例: ```xml &lt;ehcache xmlns:xsi=...

    Hibernate+EhCache配置及使用说明详解

    Hibernate+EhCache 配置及使用说明详解 EhCache 是 Hibernate 的二级缓存技术之一,可以把查询出来的数据存储在内存或者磁盘,节省下次同样查询语句再次查询数据库,大幅减轻数据库压力。 EhCache 的使用注意点: ...

    Ehcache2缓存区配置详解.pdf

    Ehcache的配置文件,通常命名为`ehcache.xml`,位于客户端类路径的根目录下。配置文件遵循XML格式,用于定义缓存区的行为和属性。以下是一段示例配置: ```xml &lt;ehcache xmlns:xsi=...

    Spring Boot整合EhCache的步骤详解

    在`src/main/resources`目录下创建`ehcache.xml`配置文件。这个文件用于定义EhCache的行为,例如缓存策略、大小限制等。下面是一个基本的配置示例: ```xml &lt;ehcache xmlns:xsi=...

    hibernate--5.Hibernate配置文件详解-2

    标题"hibernate--5.Hibernate配置文件详解-2"暗示我们将继续上一节的内容,进一步深入理解Hibernate配置文件的各个方面。通常,Hibernate的配置文件以`hibernate.cfg.xml`的形式存在,它是项目初始化和连接数据库的...

    Java缓存框架Java缓存框架

    #### 四、EhCache配置文件详解 EhCache的配置文件(通常名为ehcache.xml)是定义缓存行为的关键文件,主要包括以下元素: - `&lt;cache&gt;`:定义了一个具体的缓存实例。 - `name`属性:指定缓存的名字。 - `...

    EHCache配置

    **EHCache配置详解** EHCache是一款广泛应用于Java环境中的开源分布式缓存系统,它能够显著提升应用程序的性能和响应速度,特别是在数据访问密集型的应用场景中。本文将深入探讨EHCache的配置细节,帮助开发者更好...

    缓存框架-Ehcache学习笔记

    - **配置**: Ehcache 配置可以通过 XML 文件或 Java API 进行。XML 文件通常命名为 `ehcache.xml`,包含缓存的大小、过期策略等设置。 - **缓存管理**: Ehcache 提供了 CacheManager 类来管理缓存实例。可以通过 ...

    ehcache.xsd_ehcache.xml代码提示.rar

    【标题解析】:“ehcache.xsd_ehcache.xml代码提示.rar”这个标题表明这是一个与Ehcache缓存系统相关的资源包,主要目的是为Ehcache的配置文件ehcache.xml提供代码提示功能。Ehcache是一个广泛使用的开源Java缓存...

    EHCache详解_技术文档

    **2.3 ehcache配置文件中元素说明** 在ehcache.xml配置文件中,可以定义多个缓存区域及其配置参数。常见的配置项包括: - `&lt;cache&gt;`:定义一个缓存区域。 - `name`:缓存的名称。 - `maxElementsInMemory`:内存中...

Global site tag (gtag.js) - Google Analytics