如何在ehcache中配置maxEntriesLocalHeap?

blu*_*sky 9 spring caching ehcache

ehcache doc(http://ehcache.org/documentation/configuration/cache-size)将maxEntriesLocalHeap描述为

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

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

<cache
        name="myCache"
        maxEntriesLocalHeap="5000"
        eternal="false"
        overflowToDisk="false"
        timeToLiveSeconds="10000"
        memoryStoreEvictionPolicy="FIFO" />
Run Code Online (Sandbox Code Playgroud)

可以添加到缓存的最大对象数为5000.这些对象可以包含多个子对象,但只添加顶级父对象作为条目.因此,如果每个对象都引用了另外两个对象,那么maxEntriesLocalHeap对象的数量可能会增加到15000(此时最旧的对象会在添加新对象时被换出).它是否正确 ?

小智 6

是.

maxEntriesLocalHeap强制实施仅计算您在缓存中存储的键/值对的数量.作为用户,您可以很好地了解保留每个条目的堆开销,并确保配置的Java堆可以应对此负载.