2016-12-30 30 views
0

我想让我的榛木地图在5分钟后变空,以便我可以将更新的Db记录放入其中。但它没有变为空,仍然包含旧的记录。以下是我在hazelcast缓存服务器中的hazlecast.xml文件。Hazelcast缓存没有变空来存储更新的记录

<map name="CdnConfig"> 
    <in-memory-format>BINARY</in-memory-format> 
    <backup-count>0</backup-count> 
    <async-backup-count>0</async-backup-count> 
    <time-to-live-seconds>300</time-to-live-seconds> 
    <max-idle-seconds>0</max-idle-seconds> 
    <eviction-policy>LRU</eviction-policy> 
    <max-size policy="PER_NODE">1000</max-size> 
    <eviction-percentage>25</eviction-percentage> 
    <min-eviction-check-millis>5000</min-eviction-check-millis> 
</map> 

我的Java代码是这样的:

List<CdnConfigDto> dataList=(List<CdnConfigDto>)hazelCastCache.getDataFromCache("CdnConfig", key); 
    if (dataList != null) { 
     LOGGER.info("HazelcastCache conatains records "); 
} else { 
     LOGGER.info("HazelcastCache does not contains records "); 
     dataList = configurationService.getDataFromDB(); 
     hazelCastCache.addDataToCache("CdnConfig", key, dataList); 
     } 

hazelcast宣言:

private static HazelcastInstance hazelcastInstance; 
    private static HazelCastCache instance = null; 
    public static HazelCastCache getInstance() { 
    return instance; 
} 

public static void initCache() { 
    if (instance == null) { 
     synchronized (HazelCastCache.class) { 
      if (instance == null) { 
       instance = new HazelCastCache(); 
      } 
     } 
    } 
} 

private HazelCastCache() { 
    hazelcastInstance = HazelcastCacheInstance.getHazelcastInstance(); 
} 

方法实现getDataFromCache的(): -

public Object getDataFromCache(String mapName, Object key) { 
    Object data = null; 
    IMap<Object, Object> hazelMap = hazelcastInstance.getMap(mapName); 
    if (null != hazelMap) { 
     data = hazelMap.get(key); 
    } 

    return data; 

} 
+1

'hazelcast.xml'或'hazlecast.xml'? – noctarius

+0

你可以发布'hazelCastCache'的声明和'getDataFromCache'&'addDataToCache'的方法实现吗? –

+0

嗨!幸福的新的一年......事实上,我采取了另一条路线,而不是依赖于驱逐政策,每当有任何CRUD操作时,我都会进行缓存重置。但仍然想知道为什么上述方法不起作用。 @Desai:我已经在上面发布了代码.. @ noctarius:它的hazelcast.xml –

回答

0

你有没有尝试hazelMap.get(键); 5分钟后?