我对元素的“overflowToDisk”属性有疑问吗?

1)我在URL上看到:

overflowToDisk设置当内存存储达到最大限制时元素是否可以溢出到磁盘。

上面的“内存”是指为运行EHCACHE的Java进程分配的JVM内存,或者是否有任何参数指定高速缓存的内存大小?

2)当运行EHCACHE的位置因某种原因终止时,此磁盘是否被清除并且缓存中的所有内容都消失了?

最佳答案

当存储库中的元素数量超过 maxElementsInMemory 时,元素开始溢出到磁盘。下面的示例创建一个高速缓存,该高速缓存将1000个元素存储在内存中;如果需要存储更多元素,则在磁盘上最多存储10000个元素:

<cache name="cacheName"
       maxElementsInMemory="1000"
       maxElementsOnDisk="10000"
       overflowToDisk="true"
       timeToIdleSeconds="..."
       timeToLiveSeconds="...">
</cache>

对于第二个问题,请查看 diskPersistent 参数。如果将其设置为true,则当您停止JVM时,Ehcache会将您的数据存储在磁盘上。下面的示例演示了这一点:
<cache name="cacheName"
       maxElementsInMemory="1000"
       maxElementsOnDisk="10000"
       overflowToDisk="true"
       diskPersistent="true"
       timeToIdleSeconds="..."
       timeToLiveSeconds="...">
</cache>

10-08 10:54