4

我正在使用hazelcast-spring-3.1.xsd. 我的榛树地图配置如下。

<hz:map name="defaultMap"
                    backup-count="1"
                    max-size="5000"
                    max-size-policy = "PER_NODE"
                    eviction-percentage="50"
                    read-backup-data="true"    
                    eviction-policy="LRU"
                    merge-policy=
                        "com.hazelcast.map.merge.LatestUpdateMapMergePolicy"
                    time-to-live-seconds="0"
                >

我给了max-size = 5000。我有12000 条记录,如果我插入其中,defaultMap正在加载12000 条记录。我在这里很困惑,它如何加载比实际大小5000更多的数据。在插入 12000 条数据记录时我也没有例外。

还有一件事,它的驱逐配置也不起作用。如果达到其最大大小限制,我想将我的缓存驱逐 50%。

有谁能够帮我?它非常紧急。我错过了什么?

4

3 回答 3

6

您有max-size-policy = "PER_NODE"设置,这意味着每个 Hazelcast 实例中的最大地图条目数,而不是整个 Hazelcast 集群(或整个地图)。

在 Hazelcast 2.x 版本中,max-size eviction policy 的默认值为cluster_wide_map_size. 在 3.x 版本中,它被替换为PER_NODE.

还有其他设置。有关详细的地图驱逐设置和示例,您可以查看内容。

于 2015-08-12T21:11:37.657 回答
0

LFU:最不常用 LRU:最近最少使用 NONE:None RANDOM:随机我认为您会使用 LRU 而不是 LFU ..

于 2021-06-07T12:40:02.360 回答
-3

您可以使用此属性来解决您的问题:

eviction-policy="LFU"
于 2018-02-19T07:49:08.283 回答