代碼清除緩存對象(內存)代碼段用於分配緩存:如何通過Java
private static Cache cache = CacheManager.getInstance().getCache(CACHE_NAME);
public static HashMap<String, XXX> getxxCodes(int version) {
HashMap<String, XXX> xxCodes = new HashMap<String, XXX>();
try{
Object[] cacheResult = cache.get(Constants.I_XX_CODES_FOR_XXX);
if (Boolean.FALSE.equals(cacheResult[1])) {
cache.put(Constants.I_XX_CODES_FOR_XXX, id.loadXXHashMap(version));
cacheResult = cache.get(Constants.I_XX_CODES_FOR_XXX);
}
if(cacheResult[0]!=null){
xxCodes = (HashMap<String, XXX>)cacheResult[0];
}
}catch(Exception e){
logger.error("Exception occured while loading Data from I10_DRG_XX",e);
}
return xxCodes;
}
現在在某個時間點,我需要加載一些其他的「版本」到高速緩衝存儲器。這裏的版本可以是1,2,3等。因此緩存首先保存版本1數據(哈希映射)。現在,當我傳遞2在緩存中不可用時,它需要將特定數據再次加載到緩存中,但在此之前,最好清除版本1數據。我們有像flush這樣的命令來清除特定的數據嗎?
我希望我清楚我的問題。感謝您的幫助。
緩存和CacheManager來自哪些包? (我不知道標準Java庫中存在這些類。) – 2012-03-12 06:58:23