网站布局设计软件,行业门户网站模板,如何快速开发手机app,深圳网站建设方案书Cache的配置很灵活#xff0c;官方提供的Cache配置方式有好几种。你可以通过声明配置、在xml中配置、在程序里配置或者调用构造方法时传入不同的参数。你可以将Cache的配置从代码中剥离出来#xff0c;也可以在使用运行时配置#xff0c;所谓的运行时配置无非也就是在代码中…Cache的配置很灵活官方提供的Cache配置方式有好几种。你可以通过声明配置、在xml中配置、在程序里配置或者调用构造方法时传入不同的参数。你可以将Cache的配置从代码中剥离出来也可以在使用运行时配置所谓的运行时配置无非也就是在代码中配置。以下是运行时配置的好处· 在同一个地方配置所有的Cache这样很容易管理Cache的内存和磁盘消耗。· 发布时可更改Cache配置。· 可再安装阶段就检查出配置错误信息而避免了运行时错误。本文将会对ehcache.xml配置文件进行详细的阐述。在配置的时可以拷贝一个现有的ehcache.xml.ehcache.xml片段maxElementsInMemory10000eternalfalsetimeToIdleSeconds120timeToLiveSeconds120overflowToDisktruemaxElementsOnDisk10000000diskPersistentfalsediskExpiryThreadIntervalSeconds120memoryStoreEvictionPolicyLRU/ehcache.xml和其他配置文件在Ehcache-1.6之前的版本只支持ASCII编码的ehcache.xml配置文件。在Ehcach-1.6之后版本中支持UTF8编码的ehcache.xml配置文件。因为向后兼容所有采用ASCII编码的配置文件完全没有必要转换为UTF8。一个CacheManager必须要有一个XML配置。由于磁盘路径或是监听端口多个CacheManager使用同一个配置文件时会出现错误。下面是ehcache.xml具体实例以及配置指南· CacheManager配置DmulticastGroupPort4446这样可以配置监听端口。· DiskStore配置如果你使用的DiskStore(磁盘缓存)你必须要配置DiskStore配置项。如果不配置Ehcache将会使用java.io.tmpdir。diskStroe的“path”属性是用来配置磁盘缓存使用的物理路径的Ehcache磁盘缓存使用的文件后缀名是.data和.index。· CacheManagerEventListener配置我们通过CacheManagerEventListenerFactory可以实例化一个CacheManagerPeerProvider当我们从CacheManager中added和removedCache时将通知CacheManagerPeerProvider这样一来我们就可以很方面的对CacheManager中的Cache做一些统计。注册到CacheManager的事件监听类名有 adding a Cache和removing a Cache· CacheManagerPeerProvider配置在集群中CacheManager配置CacheManagerPeerProviderFactory创建CacheManagerPeerProvider。具体的实例如下propertiespeerDiscoverymanual,rmiUrls//server1:40000/sampleCache1|//server2:40000/sampleCache1|//server1:40000/sampleCache2|//server2:40000/sampleCache2propertySeparator, /· CacheManagerPeerListener配置CacheManagerPeerListener配置是用来监听集群中缓存消息的分发的。classnet.sf.ehcache.distribution.RMICacheManagerPeerListenerFactorypropertieshostNamefully_qualified_hostname_or_ip,port40001,socketTimeoutMillis120000propertySeparator, /· Cache配置· nameCache的唯一标识· maxElementsInMemory内存中最大缓存对象数。· maxElementsOnDisk磁盘中最大缓存对象数若是0表示无穷大。· eternalElement是否永久有效一但设置了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配置classcom.example.ExampleExceptionHandlerFactorypropertieslogLevelFINE/总结这里只对通用缓存的配置做了详细的阐述至于RMI缓存和集群缓存可以参考这里。下面给出几个配置示例· Ehcache默认Cache配置· SampleCache1配置简单配置在ehcache.xml文件中有此配置在使用Ehcache前最好将其删除掉自己配置。缓存名sampleCache1内存中最多可缓存10000个Element其中的element会在闲置5分钟或是存活10分钟之后失效。超过10000element时element将会输出到磁盘中输出路径是java.io.tmpdir。· SampleCache2配置Cache名为SampleCache2内存中最多可以缓存1000个element超出1000不能输出到磁盘中。缓存是永久有效的。· SampleCache3配置Cache名为SampleCache3。可缓存到磁盘。磁盘缓存将会缓存虚拟机重启期的数据。磁盘缓存失效线程运行间隔时间是10分钟。· sampleDistributedCache1配置· sampleDistributedCache2配置· sampleDistributedCache3配置代码代码classnet.sf.ehcache.distribution.RMICacheReplicatorFactorypropertiesasynchronousReplicationIntervalMillis200/代码代码Cache名为sampleDistributedCache1。classnet.sf.ehcache.distribution.RMICacheReplicatorFactory/classnet.sf.ehcache.distribution.RMIBootstrapCacheLoaderFactory/代码maxElementsInMemory10000eternalfalsetimeToIdleSeconds120timeToLiveSeconds120overflowToDisktruediskSpoolBufferSizeMB30maxElementsOnDisk10000000diskPersistentfalsediskExpiryThreadIntervalSeconds120memoryStoreEvictionPolicyLRU/代码