【问题标题】:How to configure maxEntriesLocalHeap in ehcache?如何在 ehcache 中配置 maxEntriesLocalHeap?
【发布时间】:2023-03-11 00:17:01
【问题描述】:

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

缓存可以在本地堆内存中使用的缓存条目或字节的最大数量,或者在 CacheManager 级别设置时 (仅限maxBytesLocalHeap),一个本地池可供所有缓存下 那个缓存管理器。每个缓存都需要此设置或在 CacheManager 级别。

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

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

可以添加到缓存的最大对象数为 5000。这些对象可以包含多个子对象,但仅将顶级父对象添加为条目。因此,如果每个对象都引用了其他两个对象,那么在后台,maxEntriesLocalHeap 对象的数量可能会增长到 15000(此时最旧的对象会随着新对象的添加而被换出)。这是正确的吗?

【问题讨论】:

    标签: spring caching ehcache


    【解决方案1】:

    是的。

    maxEntriesLocalHeap 强制执行只会计算您存储在缓存中的键/值对的数量。作为用户,您需要充分了解保留这些条目的堆开销,并确保您配置的 Java 堆能够应对这种负载。

    【讨论】:

      猜你喜欢
      • 2017-06-20
      • 1970-01-01
      • 2014-12-25
      • 2017-12-18
      • 2015-10-29
      • 2017-02-13
      • 2015-03-04
      • 2015-04-01
      • 1970-01-01
      相关资源
      最近更新 更多