ehcache缓存配置详解_第1页
ehcache缓存配置详解_第2页
ehcache缓存配置详解_第3页
ehcache缓存配置详解_第4页
ehcache缓存配置详解_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、设置diskstore,对所有的<cache/>和<defaultCache/>有效<!-设置缓存文件 .data 的创建路径。 如果该路径是 Java 系统参数,当前虚拟机会重新赋值,即获取该系统参数所代表的值。下面的系统参数这样解释: user.home 用户主目录 user.dir 用户当前工作目录 java.io.tmpdir-><diskStore path="java.io.tmpdir" />二、defaultCache : 默认的管理策略,其配置用于被其它cache继承,包括被在代码中创建的cache继承。

2、三、缓存区使用<cache/>标签进行配置,主要属性以及意义如下:(1)name(必填属性):缓存区名称,用以区别缓存区,必须唯一。(2)maxEntriesLocalHeap(必填属性):设置缓存在本地内存中最大缓存项数量(0表示无限)。(等效于旧版本中的maxElementsInMemory属性)。在实际使用中,在非分布式部署条件下,无限等效于Integer.MAX_SIZE(2147483647)。在分布式部署条件下,缓存项数量由Terracotta Server Array资源上限决定。 (3)maxEntriesLocalDisk(必填属性):设置保存在本地磁盘中的的最大

3、缓存项数量。默认为0,表示数量不限。(4)eternal(必填属性):设置缓存项是否为永久的。如果设置为true,缓存项的过期设置将被忽略,缓存项永不过期。(5)overflowToOffHeap:此属性仅在使用Ehcache企业版时有效。设置为true,缓存将使用非堆内存,非堆内存并非由Java管理,与Java垃圾回收无关。默认为false。(6)maxBytesLocalHeap:定义保存在Java虚拟机堆内存中的缓存项的最大字节数。定义时格式如下<number>k|K|m|M|g|G,其中k|K代表千字节,m|M代表兆字节,g|G代表吉字节。举例:maxBytesLocalH

4、eap="2g"将使用2G堆内存。此属性与maxEntriesLocalHeap互斥,指定了此属性,则不能指定maxEntriesLocalHeap。如果设定过CacheManager的maxBytesLocalHeap属性,也不能使用maxEntriesLocalHeap属性。放入缓存的缓存项将使用net.sf.ehcache.pool.sizeof.SizeOf方法计算其字节数。如果希望在计算字节数时忽略对象树中的某些属性,请参考net.sf.ehcache.pool.sizeof.annotations.IgnoreSizeOf注解。(7)maxBytesLocalO

5、ffHeap:此属性仅在使用Ehcache企业版时有效。设置本缓存区使用的非堆内存的大小。指定此属性,将默认设置overflowToOffHeap 为true。如果特别指定了overflowToOffHeap=”false”,将禁止使用非堆内存。注意:当使用非堆内存时,推荐将maxEntriesLocalHeap设置为大于等于100,否则将严重影响性能。也将看到一条警告日志。非堆内存最小值为128MB,没有上限。(8)maxBytesLocalDisk:和maxBytesLocalHeap属性类似,不过指定的是存储在本地磁盘上的缓存项最大可使用的字节数。(9)timeToIdleSeconds

6、:设置一个缓存项在过期前的闲置时间。即一个缓存项在其过期前,两次访问间隔的最大时间。仅在缓存项为非永久时有效。0表示不限闲置时间,默认为0。(10)timeToLiveSeconds:设置一个缓存项在过期前的生存时间。即从缓存项创建到过期的最大时间。仅在缓存项为非永久时有效。0表示不限生存时间,默认为0。(11)diskExpiryThreadIntervalSeconds:清理保存在磁盘上的过期缓存项目的线程的启动时间间隔,默认120秒。(12)diskSpoolBufferSizeMB:磁盘缓冲区的大小。写入磁盘的内容将缓冲在此区域,使用异步的方式写入磁盘。默认30MB,每一个缓存区使用独

7、立的缓冲区,如果遇到OutOfMemory错误时,可以尝试减小这个值。改进磁盘写入性能时,尝试增加这个值。将日志级别开到Trace,当DiskStore执行磁盘写入时,可以看到对应日志。(13)clearOnFlush:当flush()方法调用时,MemoryStore是否清空其内容,默认为true,即清空。(14)statistics:是否收集统计信息。如果需要监控缓存使用情况,应该打开这个选项。默认为关闭(统计会影响性能)。设置statistics="true"开启统计。(15)memoryStoreEvictionPolicy:当缓存项达到maxEntriesLoca

8、lHeap限制时,剔除缓存项的策略。默认为LRU(Least Recently Used)。其他的策略有:FIFO(First In First Out)和LFU(Less Frequently Used)。(16)copyOnRead:当缓存项被读出时,是否返回一份它的拷贝(返回对象是缓存中对象的拷贝)。默认false。(17)copyOnWrite:当缓存项被写入时,是否写入一份它的拷贝(写入缓存的是写入对象的拷贝)。默认false。(18)diskPersistant:是否缓存虚拟机重启器数据这个需求肯定比较普遍,我们当然不希望一旦程序退出,整个缓存就要重建了。开启diskPersist

9、ent功能,只要使用的是CacheManager单例模式,下一次启动的时候就会调用上一次运行的缓存。比较麻烦的是写入磁盘的时间还是要自己调用 Cache.flush()方法。如果仅仅考虑到程序重启的话,我建议这里把diskStore写入到一个ramfs,这样性能就更高了,但重启电脑的话就不得不重建缓存了。 通过使用<persistence/>子元素,可以配置缓存区的持久化策略。<persistence/>元素的主要属性如下:strategy:配置缓存区持久化的策略。可选值如下:localRestartable:仅在使用Ehcache企业版时有效。启用RestartStore,拷贝所有的缓存项(包含堆和非堆中的)到磁盘中,此选项提供了缓存快速重启能力以及对磁盘上缓存的容错能力。localTempSwap:当缓存容量达到上限时,将缓存对象(包含堆和非堆中的)交换到磁盘中。"localTempSwap" 并不持久化缓存内容。none:不持久化缓存内容。distributed:按照<terracot

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论