在WEB程序中使用緩存,能給程序帶來不小的效率上的提升,常用的方式是使用一些緩存插件,如OSCACHE等,這里介紹個(gè)簡(jiǎn)單的使用方式,即借助HaspMap進(jìn)行緩存,即定義一個(gè)HaspMap的類變量,然后將程序得到的數(shù)據(jù)存入該變量中,當(dāng)要獲取的時(shí)候,先從該變量中取,如果該變量中沒有數(shù)據(jù),則再根據(jù)其他方式(如從數(shù)據(jù)庫中讀取,或從文件中讀取).然后將取到的數(shù)據(jù)存入的變量中,下次要使用時(shí),就可以直接從該變量中取了,提高了效率.
類似代碼如下:
private static Map cache = new HashMap();



public Object getObj() {
final String cacheKey = "cacheToName";

if(cache.containsKey(cacheKey))
{
Object obj = (Object)cache.get(cacheKey);
return obj;
}

else
{
Object obj = "select * from
";
cache.put(cacheKey,obj);
return obj;
}
}
經(jīng)過這樣緩存的處理后,就可以給程序帶來一定的效率的提升了.
注:這里要注意一個(gè)問題,即如果從數(shù)據(jù)庫或文件中得到的數(shù)據(jù)可能是會(huì)變化的時(shí)候,且程序中又要得到最新的數(shù)據(jù)時(shí),采用這種方式是會(huì)有問題的,即不能得到最新的數(shù)據(jù),比如開始從數(shù)據(jù)庫中查詢得到了一條數(shù)據(jù),然后存入HashMap變量中,然后在系統(tǒng)的其他地方中更改了數(shù)據(jù)庫表中的數(shù)據(jù),這時(shí)采用這種緩存方式獲取到的數(shù)據(jù)是改變之前的舊數(shù)據(jù),而不是最新的數(shù)據(jù)的,如果要得到最新的數(shù)據(jù),則就應(yīng)該去掉緩存機(jī)制,呵呵.
posted on 2008-06-12 16:00
henry1451 閱讀(398)
評(píng)論(1) 編輯 收藏 所屬分類:
Java技術(shù)