ehcache缓存配置说明

合集下载

ehcache 磁盘缓存 默认路径

ehcache 磁盘缓存 默认路径

ehcache 磁盘缓存默认路径摘要:1.介绍ehcache2.磁盘缓存的作用3.默认路径的设置4.总结正文:Ehcache 是一款非常流行的Java 缓存框架,它可以帮助我们有效地提高系统的性能和响应速度。

在Ehcache 中,磁盘缓存是一个非常重要的功能,它能够将缓存数据持久化到磁盘,从而在系统重启时能够快速地加载缓存数据。

而默认路径的设置则决定了磁盘缓存文件存储的位置。

首先,我们来了解一下Ehcache。

Ehcache 是一个开源的、可嵌入的、高性能的Java 缓存框架,它提供了多种缓存策略,如LRU(最近最少使用)、LFU(最不经常使用)等。

通过使用Ehcache,我们可以轻松地实现对数据的缓存,从而降低系统对数据库的访问次数,提高系统的性能。

接下来,我们来看一下磁盘缓存的作用。

在实际应用中,有时候我们需要将缓存数据持久化到磁盘,以便在系统重启时能够快速地加载缓存数据。

例如,当我们的系统需要运行一段时间后才能获取到完整的数据时,我们可以使用磁盘缓存将这些数据保存下来,以便下次运行时能够快速地加载。

这样,就可以避免重复计算或查询数据库,从而提高系统的响应速度。

然后,我们来看一下默认路径的设置。

默认情况下,Ehcache 会将磁盘缓存文件存储在项目的工作目录下。

但是,有时候我们需要将磁盘缓存文件存储在其他路径,以便更好地管理缓存文件。

这时,我们可以通过设置Ehcache 的配置文件来实现。

具体来说,我们可以在ehcache.xml 配置文件中设置`diskPersistent`和`diskExpiry`属性,从而指定磁盘缓存文件的存储路径和过期时间。

总结一下,Ehcache 是一款非常实用的Java 缓存框架,它可以帮助我们有效地提高系统的性能和响应速度。

在Ehcache 中,磁盘缓存是一个非常重要的功能,它能够将缓存数据持久化到磁盘,从而在系统重启时能够快速地加载缓存数据。

而默认路径的设置则决定了磁盘缓存文件存储的位置。

Spring下Ehcache缓存的配置文档说明

Spring下Ehcache缓存的配置文档说明

Ehcache缓存单机环境配置以下的配置是针对DAO层而言的,Controller层不需要做配置。

步骤一:配置pom.xml文件在文件中引入以下几个依赖项:<dependency><groupId>com.googlecode.ehcache</groupId><artifactId>spring-annotations-osgi</artifactId><version>1.1.2</version></dependency><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.4</version></dependency><dependency><groupId>net.sourceforge.ehcache</groupId><artifactId>.sf.ehcache</artifactId><version>2.2.0</version></dependency>步骤二:配置template.mf在”Import-Package”之后”Excluded-Exports”之前引入三条配置项,注意包名之前要留一个空格,如下红色字体显示部分:Import-Package: org.springframework.context.config;version="[3.0.5,4)",com.googlecode.ehcache.annotations;version="1.1.0",com.googlecode.ehcache.annotations.key;version="1.1.0",org.springframework.aop.aspectj.autoproxyExcluded-Exports: com.mpr.mprsp.mcrc.service.mcrs.publisher.internal.*步骤三:配置Spring的配置文件applicationContext.xml:首先在文件的头部加上ehcache的dtd声明,然后配置ehcache缓存管理器。

ehcache缓存配置详解

ehcache缓存配置详解

一、设置diskstore,对所有的<cache/>和<defaultCache/>有效<!--设置缓存文件 .data 的创建路径。

如果该路径是 Java 系统参数,当前虚拟机会重新赋值,即获取该系统参数所代表的值。

下面的系统参数这样解释:user.home –用户主目录user.dir –用户当前工作目录 java.io.tmpdir--><diskStore path="java.io.tmpdir" />二、defaultCache :默认的管理策略,其配置用于被其它cache继承,包括被在代码中创建的cache继承。

三、缓存区使用<cache/>标签进行配置,主要属性以及意义如下:(1)name(必填属性):缓存区名称,用以区别缓存区,必须唯一。

(2)maxEntriesLocalHeap(必填属性):设置缓存在本地内存中最大(等效于旧版本中的maxElementsInMemory 缓存项数量(0表示无限)。

属性)。

在实际使用中,在非分布式部署条件下,无限等效于Integer.MAX_SIZE(2147483647)。

在分布式部署条件下,缓存项数量由Terracotta Server Array资源上限决定。

(3)maxEntriesLocalDisk(必填属性):设置保存在本地磁盘中的的最大缓存项数量。

默认为0,表示数量不限。

(4)eternal(必填属性):设置缓存项是否为永久的。

如果设置为true,缓存项的过期设置将被忽略,缓存项永不过期。

(5)overflowToOffHeap:此属性仅在使用Ehcache企业版时有效。

设置为true,缓存将使用非堆内存,非堆内存并非由Java管理,与Java 垃圾回收无关。

默认为false。

(6)maxBytesLocalHeap:定义保存在Java虚拟机堆内存中的缓存项的最大字节数。

ehcache缓存的详细配置

ehcache缓存的详细配置

用到缓存,主要是用来解决并发问题的。

其中ehcache是一个纯Java的过程中缓存实现Hibernate2.1,Spring都支持EHcache嵌入。

本文主要写Spring中引入ehcache而不是用hibernate.ehcache部署起来很简单,主要分两步:1.首先要给他写个核心配置XML文件Xml代码<ehcache><diskStore path="java.io.tmpdir"/><defaultCachemaxElementsInMemory="10000"eternal="false"timeToIdleSeconds="120"timeToLiveSeconds="120"overflowToDisk="true"diskPersistent="false"diskExpiryThreadIntervalSeconds ="120"memoryStoreEvictionPolicy="LRU"/><cache name="cache1"maxElementsInMemory="10000"eternal="false" maxEle mentsOnDisk="1000"overflowToDisk="true"timeToIdleSeconds="300"timeToLiveSeconds="600"memoryStoreEvictionPolicy="LFU"/></ehcache>属性解释:简单配置,在ehcache.xml文件中有此配置,在使用Ehcache前最好将其删除掉,自己配置。

ehcache 缓存参数 -回复

ehcache 缓存参数 -回复

ehcache 缓存参数-回复关于ehcache缓存参数的文章引言:在现代软件开发中,为了提高系统的性能和响应速度,应用程序经常会使用缓存来存储经常访问的数据。

ehcache是一个Java缓存库,它提供了丰富而强大的缓存功能。

本文将深入探讨ehcache缓存参数的相关知识,帮助读者了解如何优化和配置ehcache缓存以提高系统的性能。

第一部分:什么是ehcache缓存1.1 缓存的定义和作用缓存是一种将数据存储在临时存储器中的技术,以便可以快速地检索和更新数据。

它可以在磁盘或内存中存储数据,并可以根据需求设置缓存失效策略。

1.2 ehcache简介ehcache是一个广泛使用的Java缓存库,它提供了高性能、可扩展和可靠的缓存功能。

它可以与各种Java框架集成,如Spring、Hibernate等。

第二部分:ehcache缓存参数的配置2.1 缓存的初始化和配置要使用ehcache缓存,首先需要在应用程序中添加ehcache的依赖,并在项目的配置文件中进行相应的配置。

2.2 重要的ehcache缓存参数ehcache提供了一些重要的缓存参数,可以通过配置文件进行设置。

下面是其中一些常用参数的说明:- timeToIdleSeconds:设置对象在缓存中的空闲时间。

如果对象在指定的时间间隔内没有被访问,那么它将被从缓存中移除。

- timeToLiveSeconds:设置对象在缓存中的存活时间。

如果对象存活时间超过指定的时间间隔,那么它将被从缓存中移除。

- maxEntriesLocalHeap:在堆内存中存储的最大缓存对象数。

- maxEntriesLocalDisk:在磁盘中存储的最大缓存对象数。

- diskExpiryThreadIntervalSeconds:设置缓存失效检查线程的执行间隔时间。

2.3 缓存参数配置的注意事项在配置ehcache缓存参数时,需要注意以下几点:- 根据应用程序的需求合理设置缓存的空闲和存活时间,以免存储过期或无用的数据。

ehcache 磁盘缓存 默认路径

ehcache 磁盘缓存 默认路径

ehcache 磁盘缓存默认路径Ehcache是一个Java的开源缓存框架,可以帮助开发人员实现快速的内存缓存和磁盘缓存。

在使用Ehcache进行磁盘缓存时,默认路径是在操作系统的临时目录下。

以下是有关Ehcache磁盘缓存默认路径的更多详细信息。

Ehcache的磁盘缓存默认路径是根据操作系统的不同而有所不同。

对于Windows系统来说,默认路径是在`C:\Documents andSettings\<用户名>\Local Settings\Temp\ehcache`目录下。

对于Linux系统来说,默认路径是在`/tmp/ehcache`目录下。

这个默认路径可以在Ehcache的配置文件中进行自定义设置。

如果没有特殊需求,一般情况下可以使用默认路径。

Ehcache磁盘缓存的默认路径是在临时文件夹中的一个单独的子目录中。

该子目录的命名规则是`ehcache<版本号>`,其中`<版本号>`是Ehcache的版本号。

例如,如果使用的是Ehcache 3.x版本,那么默认路径的子目录名就是`ehcache3`。

在Ehcache的磁盘缓存默认路径下,会生成一些特定格式的文件来存储缓存的数据。

这些文件的命名规则是基于所使用的缓存区域的名称。

每个缓存区域都会生成一个对应的文件,该文件的文件名就是缓存区域的名称。

例如,如果有一个缓存区域的名称为`myCache`,那么对应的文件名就是`myCache.data`。

除了缓存数据文件,还可能生成一些其他数据文件,比如索引文件等。

Ehcache提供了非常丰富的配置选项,允许开发人员根据实际需求来自定义磁盘缓存的路径。

在Ehcache的配置文件中,可以使用以下配置属性来指定磁盘缓存的路径:```<diskStore path="path/to/cache/directory" />```其中,`path`属性的值就是磁盘缓存的路径。

ehcache 磁盘缓存 默认路径

ehcache 磁盘缓存 默认路径

ehcache 磁盘缓存默认路径【实用版】目录1.Ehcache 简介2.磁盘缓存的作用和默认路径3.Ehcache 磁盘缓存的配置4.Ehcache 磁盘缓存的优缺点正文【Ehcache 简介】Ehcache 是一款开源的 Java 缓存框架,它可以用来存储和管理数据,以提高应用程序的运行速度。

Ehcache 支持多种缓存策略和数据存储方式,如内存缓存、磁盘缓存、分布式缓存等。

【磁盘缓存的作用和默认路径】磁盘缓存是 Ehcache 提供的一种数据存储方式,主要用于存储那些不太经常访问的数据。

当内存缓存空间不足时,Ehcache 会将部分数据转移到磁盘缓存中。

磁盘缓存的默认路径是 Java 虚拟机的用户目录下的.ehcache 文件夹。

【Ehcache 磁盘缓存的配置】Ehcache 磁盘缓存的配置可以通过 xml 配置文件或者 Java 代码进行。

在 xml 配置文件中,可以通过设置 diskStore、diskSpoolBufferSize、maxElementsInMemory 等参数来调整磁盘缓存的相关属性。

在 Java 代码中,可以通过 Ehcache 的 API 来进行配置。

【Ehcache 磁盘缓存的优缺点】Ehcache 磁盘缓存的优点是可以大大提高数据存储的容量,从而支持更多的数据缓存。

同时,磁盘缓存也可以作为内存缓存的备份,当内存缓存出现故障时,磁盘缓存可以接管数据缓存任务。

然而,Ehcache 磁盘缓存也存在一些缺点。

首先,磁盘缓存的访问速度相对较慢,因为磁盘读写速度远远低于内存读写速度。

ehcache缓存配置

ehcache缓存配置

ehcache缓存配置# 在pom.xml中引⼊依赖<dependency><groupId>net.sf.ehcache</groupId><artifactId>ehcache</artifactId><version>2.10.6</version></dependency># 在src/main/resources/创建⼀个配置⽂件 ehcache.xml默认情况下Ehcache会⾃动加载classpath根⽬录下名为ehcache.xml⽂件,也可以将该⽂件放到其他地⽅在使⽤时指定⽂件的位置。

<?xml version="1.0" encoding="UTF-8"?><ehcache xmlns:xsi="/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="/ehcache.xsd"><!-- 磁盘缓存位置 --><diskStore path="java.io.tmpdir/ehcache"/><!-- 默认缓存 --><defaultCachemaxEntriesLocalHeap="10000"eternal="false"timeToIdleSeconds="120"timeToLiveSeconds="120"maxEntriesLocalDisk="10000000"diskExpiryThreadIntervalSeconds="120"memoryStoreEvictionPolicy="LRU"><persistence strategy="localTempSwap"/></defaultCache><!-- helloworld缓存 --><cache name="HelloWorldCache"maxElementsInMemory="1000"eternal="false"timeToIdleSeconds="5"timeToLiveSeconds="5"overflowToDisk="false"memoryStoreEvictionPolicy="LRU"/></ehcache># 测试类public class CacheTest {public static void main(String[] args) throws IOException {// 1. 创建缓存管理器。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ehcache缓存配置说明前阵子用ehcache做缓存集群,现在结束了,所以整理了下配置文件的注释,有些是自己翻译的,仅供参考<cacheManagerPeerProviderFactoryclass="net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory" properties="connect=TCP(start_port=7800):TCPPING(initial_hosts=127.0.0.1[7800];port_range=10;timeout=3000;num_initial_members=3;u p_thread=true;down_thread=true):VERIFY_SUSPECT(timeout=1500;down_thread=false;up_thread=false):pbcast.NAKACK(down_thread=true;up_thread=true;gc_lag=100;retransmit_timeout=3000):pbcast.GMS(join_timeout=5000;join_retry_timeout=2000;shun=false;print_local_addr=false;dow n_thread=true;up_thread=true)"propertySeparator="::"/>cacheManagerPeerProviderFactory ehcache缓存监视器.connect=TCP 监视模式:TCP模式(还有UDP模式).start_port 指定监听起始端口.TCPPING 监听端口寻找广播方式(还有一种:TCPGOSSIP)寻找端口进行监听,从start_port开始递增port_range寻找可用的端口.initial_hosts 指定ehcache的所在主机IP(如果有多台主机的话initial_hosts=192.168.1.1[7800],192.168.1.2[7800]).port_range 递增值.timeout 没找到说明,猜测是寻找下一个有效端口前的停留时间.num_initial_members 初始成员,执行缓存同步的项目数up_thread,down_thread每个通信协议都会产生两个线程(up_thread,down_thread),用来控制队列的挂起和运行,可以通过设置up_thread=false;down_thread=false来使这两个线程失效VERIFY_SUSPECT 校验模块(问题出现时检验是服务死掉了,还是通信接口失效了)gc_lag 垃圾回收间隔retransmit_timeout 重新广播前等待的时间pbcast.NAKACK 确保消息正常广播,如果广播失败,接收者将重新请求,同时保证消息的先进先出原则pbcast.GMS 调度器,实时的广播,告知成员的变动情况,新增或者去除.join_timeout 加入时间限时join_retry_timeout 重试加入限时shun 自动尝试加入(新版本已被去除,不赞成使用)print_local_addr 打印出当前广播的地址==============================================================================<cacheEventListenerFactoryclass="net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory"properties="replicateAsynchronously=true, replicatePuts=true,replicateUpdates=true, replicateUpdatesViaCopy=false,replicateRemovals=true" />cacheEventListenerFactory 注册相应的的缓存监听类,用于处理缓存事件. replicateAsynchronously true|false 复制操作是异步(ture),还是同步(false)默认值为true. replicatePuts true|false 当新对象被放入缓存,集群内其他缓存也放入,默认为true. replicateUpdates true|false 新对象覆盖已经存在具有相同key的对象是否被复制,默认值为true.replicateUpdatesViaCopy true|false 直接将更新之后的对象复制到集群中的其他缓存(true);不复制对象,只想集群众的其他缓存发布一个对象更新的消息(false),默认为true.replicateRemovals true|false 对象被移除,是否复制状态到集群中其他缓存,默认true.==============================================================================<defaultCache maxElementsInMemory="500000" eternal="false"timeToIdleSeconds="1800" timeToLiveSeconds="1800"overflowToDisk="true" diskPersistent="true"><cacheEventListenerFactoryclass="net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory"properties="replicateAsynchronously=true, replicatePuts=true,replicateUpdates=true, replicateUpdatesViaCopy=false,replicateRemovals=true" /></defaultCache><defaultCache maxElementsInMemory="10000" eternal="false"timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true" diskSpoolBufferSizeMB="30" maxElementsOnDisk="10000000"diskPersistent="false" diskExpiryThreadIntervalSeconds="120" memoryStoreEvictionPolicy="LRU"><cacheEventListenerFactoryclass="net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory"properties="replicateAsynchronously=true, replicatePuts=true,replicateUpdates=true, replicateUpdatesViaCopy=false,replicateRemovals=true" /></defaultCache>defaultCache 默认缓存,有些没有被配置的缓存对象将使用默认缓存maxElementsInMemory 内存中最大缓存对象数.当超过最大对象数的时候,ehcache会按指定的策略去清理内存eternal 缓存对象是否永久有效,一但设置了,timeout将不起作用.timeToIdleSeconds 设置Element在失效前的允许闲置时间.仅当element不是永久有效时使用,可选属性,默认值是0,也就是可闲置时间无穷大.timeToLiveSeconds timeToLiveSeconds:设置Element在失效前允许存活时间.最大时间介于创建时间和失效时间之间.仅当element不是永久有效时使用,默认是0.,也就是element存活时间无穷大.overflowToDisk 配置此属性,当内存中Element数量达到maxElementsInMemory时,Ehcache将会Element写到磁盘中.diskSpoolBufferSizeMB 这个参数设置DiskStore(磁盘缓存)的缓存区大小.默认是30MB.每个Cache都应该有自己的一个缓冲区.maxElementsOnDisk 磁盘中最大缓存对象数,若是0表示无穷大.diskPersistent 是否在重启服务的时候清楚磁盘上的缓存数据.true不清除. diskExpiryThreadIntervalSeconds 磁盘失效线程运行时间间隔. memoryStoreEvictionPolicy memoryStoreEvictionPolicy:当达到maxElementsInMemory限制时,Ehcache将会根据指定的策略去清理内存.默认策略是LRU(最近最少使用).你可以设置为FIFO(先进先出)或是LFU(较少使用).注:普通cache同defaultCache的属性一样,可以根据自己的实际需求去配置。

相关文档
最新文档