我对元素的“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>