ehcache没有使来自diskstore的元素过期

时间:2014-07-18 10:03:03

标签: java ehcache

我想只在磁盘库中缓存元素而不是在内存/ ram中,为此我使用了以下配置,它将元素存储在磁盘上,但它在5分钟后不会过期/从磁盘中删除数据。

<diskStore path="/global-cache" />

<cache name="globalCache" 
       maxElementsInMemory="0"
       eternal="true" 
       timeToIdleSeconds="0" 
       diskSpoolBufferSizeMB="1"
       diskPersistent="true"
       timeToLiveSeconds="300" 
       diskExpiryThreadIntervalSeconds="120"
       overflowToDisk="true"
       memoryStoreEvictionPolicy="LFU" />

我可以在ehcache配置中做些什么,它会在指定时间后从磁盘库过期?

1 个答案:

答案 0 :(得分:1)

你不能像documentation那样声明:

  

如果条目过期但未被访问,并且没有资源限制   强制驱逐,然后过期的条目仍然存在。

即使某些约束会强制驱逐,Ehcache也可能只删除部分过期条目,因此不需要扫描所有磁盘存储。 如果您绝对需要跟踪过期的每个条目,那么您必须自己实现此功能,但这会影响您的表现。可能这就是Ehcache没有内置此功能的原因。