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缓存的配置文档说明

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缓存配置详解

一、设置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是一个纯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是一个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是一个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 磁盘缓存默认路径【实用版】目录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缓存配置# 在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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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的属性一样,可以根据自己的实际需求去配置。