Hazelcast近缓存驱逐不起作用

时间:2017-01-22 10:38:06

标签: java hazelcast

我正在使用Hazelcast 3.7.4,我有精简和非精简成员。

在我的精简版成员中,我设置了近缓存,如下所示:

        NearCacheConfig nearCacheConfig = new NearCacheConfig(0, cacheSize, EvictionPolicy.LRU.name(), 0, true, InMemoryFormat.OBJECT);
        config.getMapConfig(mapName).setNearCacheConfig(nearCacheConfig);

我已经在我的lite成员上配置了条目监听器,并且可以验证它是否在更改时被调用。而且,新旧价值内容是正确的。

但是当我试图从地图中获取值时,我仍然得到旧值。

在调试时,我试图查看地图内容,我可以看到新值,但是当我调用时:map.get(key)会返回旧值。

1 个答案:

答案 0 :(得分:0)

这显然是一个错误,我从HZ团队得到的答案:

  

感谢您报告此事,确实这是3.7版本的错误。 3.8-EA没有这个问题。   问题的根本原因是,如果未在其他成员上配置近缓存,则不会向lite-members发送无效。

     

目前,作为一种解决方法,您可以在其他成员上启用近缓存。   可能我们可以在下一个3.7补丁版本中解决这个问题   3.7.6。

作为一种解决方法,正如建议的那样,我已经在其他成员上启用了近缓存(仅适用于此地图)并且它解决了问题。

https://github.com/hazelcast/hazelcast/issues/9723