[英]How to clear cache object (memory) through 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的命令來清除特定數據?
我希望我清楚我的問題。 感謝您的幫助。
這將從Cache( Assumption:Weblogic cache )中刪除該對象。它將生存時間設置為“ 0”
Cache cache = getCache();
cache.remove(cacheKey);
getCache()
可以實現如下...
public Cache getCache(){
Cache cache = CacheFactory.getCache(cacheKey);
long ttl=0;
cache.setTtl(ttl);
return cache;
}
我已使用以下代碼及其正常工作,
public void flushCache()
{
cache.flush(cacheKeyName)
}
這將從內存中刪除緩存實例。 感謝你的幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.