我正在使用Hazelcast 3.7.4,并且有Lite和non-lite成员。
在我的精简版成员上,我将近缓存设置如下:
NearCacheConfig nearCacheConfig = new NearCacheConfig(0, cacheSize, EvictionPolicy.LRU.name(), 0, true, InMemoryFormat.OBJECT);
config.getMapConfig(mapName).setNearCacheConfig(nearCacheConfig);
我已经在lite成员上配置了条目侦听器,并且可以验证是否在更改时调用它。而且,新旧价值内容是正确的。
但是,当我尝试从地图中获取价值时,我仍在获取旧价值。
调试时,我尝试查看地图内容,可以看到新值,但是当我调用:
map.get(key)
时,将返回旧值。 最佳答案
这显然是一个错误,这是我从HZ团队得到的答案:
感谢您报告此错误,确实这是3.7版本的错误。 3.8-EA没有这个问题。
问题的根本原因是,如果在其他成员上也未配置近乎缓存,则不会将无效发送给精简成员。
目前,作为一种解决方法,您可以在其他成员上启用近缓存。
可能我们可以在下一个3.7补丁程序版本中解决此问题
3.7.6。
作为一种解决方法,如建议的那样,我在其他成员上启用了近缓存(仅针对此地图),它解决了该问题。
https://github.com/hazelcast/hazelcast/issues/9723