如何配置ehcache中的maxEntriesLocalHeap?

10

这里是Ehcache文档(https://www.ehcache.org/documentation/2.8/configuration/cache-size.html),其中将maxEntriesLocalHeap描述为:

缓存可以在本地堆内存中使用的最大条目数或字节数,或者当设置在CacheManager级别时(仅限maxBytesLocalHeap),它是所有CacheManager下的缓存都可用的本地池。对于每个缓存或CacheManager级别,都需要进行此设置。

这是否意味着对于这种配置:

<cache
        name="myCache"
        maxEntriesLocalHeap="5000"
        eternal="false"
        overflowToDisk="false"
        timeToLiveSeconds="10000"
        memoryStoreEvictionPolicy="FIFO" />

缓存中可以添加的最大对象数为5000。这些对象可以包含多个子对象,但只有顶层父对象被添加为条目。因此,在幕后,如果每个对象都引用另外两个对象,则maxEntriesLocalHeap对象的数量可能增长到15000(在此时,随着添加新对象,最旧的对象会被替换)。这是否正确?

1个回答

9

是的。

maxEntriesLocalHeap 只会计算您在缓存中存储的键值对数量。作为用户,您需要充分了解保留每个条目所需的堆开销,并确保您配置的 Java 堆可以处理此负载。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接