posts - 60,comments - 71,trackbacks - 0

              在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 閱讀(400) 評(píng)論(1)  編輯  收藏 所屬分類: Java技術(shù)

          FeedBack:
          # re: 程序中緩存的使用
          2009-03-13 16:18 | 代碼人生
          如果數(shù)據(jù)量大的化,這個(gè)時(shí)候你知道JAVA 虛擬機(jī)什么時(shí)候失放嗎?  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 南澳县| 北流市| 罗定市| 普陀区| 玉田县| 达州市| 青神县| 青铜峡市| 剑阁县| 墨江| 浪卡子县| 敦煌市| 新乡市| 抚顺县| 鸡泽县| 南部县| 固镇县| 张家口市| 永善县| 新干县| 汉阴县| 北宁市| 集贤县| 澄江县| 西盟| 抚顺县| 宁德市| 神农架林区| 莲花县| 如东县| 东山县| 荆门市| 德州市| 象山县| 万安县| 浮山县| 西盟| 遂溪县| 昌乐县| 象山县| 西宁市|