ehcache持久化
2015-06-24 14:13
399 查看
cache的属性有如下几个
name:Cache的唯一标识
maxElementsInMemory:内存中最大缓存对象数。
maxElementsOnDisk:磁盘中最大缓存对象数,若是0表示无穷大。
eternal:Element是否永久有效,一但设置了,timeout将不起作用。
overflowToDisk:配置此属性,当内存中Element数量达到maxElementsInMemory时,Ehcache将会Element写到磁盘中。
timeToIdleSeconds:设置Element在失效前的允许闲置时间。仅当element不是永久有效时使用,可选属性,默认值是0,也就是可闲置时间无穷大。
timeToLiveSeconds:设置Element在失效前允许存活时间。最大时间介于创建时间和失效时间之间。仅当element不是永久有效时使用,默认是0.,也就是element存活时间无穷大。
diskPersistent:是否缓存虚拟机重启期数据。(Server重启时将缓存序列化到本地,后再加载,保证缓存在重启后依然有效)。
diskExpiryThreadIntervalSeconds:磁盘失效线程运行时间间隔,默认是120秒。
diskSpoolBufferSizeMB:这个参数设置DiskStore(磁盘缓存)的缓存区大小。默认是30MB。每个Cache都应该有自己的一个缓冲区。
memoryStoreEvictionPolicy:当达到maxElementsInMemory限制时,Ehcache将会根据指定的策略去清理内存。默认策略是LRU(最近最少使用)。你可以设置为FIFO(先进先出)或是LFU(较少使用)。这里比较遗憾,Ehcache并没有提供一个用户定制策略的接口,仅仅支持三种指定策略,感觉做的不够理想。
下面说下最近使用到的磁盘持久化与加载功能,由于之前使用过程中一般为直接缓存,而最近想到使用diskPersistent来配置本地磁盘持久化,实现此功能其实非常简单,只用简单的将diskPersistent配置为true,以tomcat为例,在重启时候需要告知EhCache,你要重启了,让EhCache去序列化内容到磁盘,此过程可以自己写监听实现重启时调用CacheManager的shutdown,也可以直接使用EhCache提供的监听类net.sf.ehcache.constructs.web.ShutdownListener,但是有一点需要注意,就是在使用此项功能时,必须保持重启或者关闭Server采用的是正常手段关闭,直接杀进程之类的关闭时完全不生效的。
在配置文件中,则需配置Bootstrapcacheloaderfactory,使用
<bootstrapCacheLoaderFactory
class=”net.sf.ehcache.store.DiskStoreBootstrapCacheLoaderFactory”
properties=”bootstrapAsynchronously=true”/>
在web.xml里边配置监听
name:Cache的唯一标识
maxElementsInMemory:内存中最大缓存对象数。
maxElementsOnDisk:磁盘中最大缓存对象数,若是0表示无穷大。
eternal:Element是否永久有效,一但设置了,timeout将不起作用。
overflowToDisk:配置此属性,当内存中Element数量达到maxElementsInMemory时,Ehcache将会Element写到磁盘中。
timeToIdleSeconds:设置Element在失效前的允许闲置时间。仅当element不是永久有效时使用,可选属性,默认值是0,也就是可闲置时间无穷大。
timeToLiveSeconds:设置Element在失效前允许存活时间。最大时间介于创建时间和失效时间之间。仅当element不是永久有效时使用,默认是0.,也就是element存活时间无穷大。
diskPersistent:是否缓存虚拟机重启期数据。(Server重启时将缓存序列化到本地,后再加载,保证缓存在重启后依然有效)。
diskExpiryThreadIntervalSeconds:磁盘失效线程运行时间间隔,默认是120秒。
diskSpoolBufferSizeMB:这个参数设置DiskStore(磁盘缓存)的缓存区大小。默认是30MB。每个Cache都应该有自己的一个缓冲区。
memoryStoreEvictionPolicy:当达到maxElementsInMemory限制时,Ehcache将会根据指定的策略去清理内存。默认策略是LRU(最近最少使用)。你可以设置为FIFO(先进先出)或是LFU(较少使用)。这里比较遗憾,Ehcache并没有提供一个用户定制策略的接口,仅仅支持三种指定策略,感觉做的不够理想。
下面说下最近使用到的磁盘持久化与加载功能,由于之前使用过程中一般为直接缓存,而最近想到使用diskPersistent来配置本地磁盘持久化,实现此功能其实非常简单,只用简单的将diskPersistent配置为true,以tomcat为例,在重启时候需要告知EhCache,你要重启了,让EhCache去序列化内容到磁盘,此过程可以自己写监听实现重启时调用CacheManager的shutdown,也可以直接使用EhCache提供的监听类net.sf.ehcache.constructs.web.ShutdownListener,但是有一点需要注意,就是在使用此项功能时,必须保持重启或者关闭Server采用的是正常手段关闭,直接杀进程之类的关闭时完全不生效的。
在配置文件中,则需配置Bootstrapcacheloaderfactory,使用
<bootstrapCacheLoaderFactory
class=”net.sf.ehcache.store.DiskStoreBootstrapCacheLoaderFactory”
properties=”bootstrapAsynchronously=true”/>
在web.xml里边配置监听
<listener> <listener-class>net.sf.ehcache.constructs.web.ShutdownListener</listener-class> </listener>
相关文章推荐
- 分析Cache 在 Ruby China 里面的应用情况
- Enterprise Library for .NET Framework 2.0缓存使用实例
- PowerShell中编程清空IE缓存方法
- PowerShell中使用.NET将程序集加入全局程序集缓存
- C#中缓存的基本用法总结
- asp 页面允许CACHE的方法
- web 应用中常用的各种 cache详解
- wap开发中如何有效的利用缓存减少消息的传送量
- smarty缓存用法分析
- ASP.NET中Session和Cache的区别总结
- 引用全局程序集缓存内的程序集的方法
- asp Response.flush 实时显示进度
- ASP javascript Application对象的Contents和StaticObjects做Cache的一些经验
- ASP.NET笔记之 viewstate与cache的使用
- ASP.NET缓存管理的几种方法
- 清除aspx页面缓存的程序实现方法
- C#缓存之SqlCacheDependency用法实例总结
- jQuery数据缓存用法分析
- Jquery validation remote 验证的缓存问题解决方法
- IE9下Ajax无法刷新数据的缓存问题解决方法