<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    自己寫的一個cache小組件

    Cache作為提高性能的有效手段可以說是無處不在的。CPU有一級緩存,二級緩存;數據庫有自己的數據緩存;內存實質上就是硬盤的緩存。。。。。。而程序中的緩存也能夠有效的減少與存儲設備的交互,增加應用的并發能力。

    我通過在實際項目中自行設計和使用cache,逐漸提高了系統的并發能力,但同時也感覺到了很多的不足:

    1.       因為是在原有系統基礎上優化,cache的處理沒有統一的規劃,而是頭痛醫頭,腳痛醫腳。cache分散在系統各個模塊,很難想起哪些模塊使用了cache

    2.       cache的實現各種各樣,有的是單例、有的是static對象,而cache對象與數據庫的交互也是直接硬編碼在原有系統中,難于維護

    3.       cache的參數如刷新間隔。。。。。。未使用配置文件,而是直接定義在cache的類文件中,對配置的更改就需要更新整個類,進而影響系統的運行

    4.       缺少對cache的監控機制和log機制,出現問題很難去跟蹤和解決。

    經過一段時間具體項目的洗禮,對java也有了進一步的認識,我也可以有能力來解決一直困擾心中的cache的這些問題了。想法很簡單,就是能夠通過單一的配置文件,對系統中的所有cache進行統一的管理,各個cache所在的模塊,和cache的配置參數,都能夠一目了然。而對配置文件的重載功能也是我要考慮的問題,希望對某些cache的配置的更改能夠對其它cache無影響,同時這些更改也能在不影響應用運行狀態的情況下進行。當然既然是統一管理,就需要做到接口的統一。我定義了CacheCachePersistence兩個接口,然后不同的cache可以提供不同的實現,實現類需要在配置文件中指定,同時系統提供默認的實現,以滿足簡單的應用。想了就要開始做,我也沒想一開始就做出象OSCacheJbossCache那樣通用的cache來,也許經過不斷的交流,不斷的完善最終可以做到。經過簡單的設計,我就開始寫代碼了,就我一個人,也算是XP編程了,呵呵!cache的配置參數,我根據項目經驗想到了幾個,可能還可以有,但目前我不知道,需要在更多的項目應用中去發現,具體可以看我的包中的cache.xml文件,有對配置項的具體說明。

    從開始開發到最后寫完測試類,也就不到一個星期的時間(上班的空余時間和加班寫),當中也進行了幾次重構。總的來說,還算滿意,這也算俺的第一個開源項目啊,呵呵!

    具體如何使用,很簡單,你有興趣可以實現Cache接口,我內置了基于HashMapCache,應該能滿足大部分應用的需要。CachePersistence就是你的對象與存儲設備交互的實現了,你一般需要實現這一接口,然后配置在配置文件中。然后通過CacheFactory得到Cache,通過Cache接口使用對象。對Cache的操作你可以當成一個Map來使用,由容器來自動處理何時與存儲設備的交互,你只要配置好就ok了。另外可以參考src中的test包,里面是我對Cache的功能測試代碼,也能作為使用cache的實例的。

    說了這么多,大家如果有興趣,可下載我的全部文件,里面包括jarsrclibjavadoc還有配置文件,點擊這里http://m.tkk7.com/Files/pesome/pcache.zip。更歡迎大家在實際的項目中使用我的cache,如果有任何問題都可以跟我聯系,mailto:pesome@163.com。謝謝!

    posted on 2005-09-06 15:38 pesome 閱讀(2225) 評論(6)  編輯  收藏 所屬分類: 開源軟件

    評論

    # re: 自己寫的一個cache小組件 2005-09-06 17:48 margiex

    Resource not found  回復  更多評論   

    # re: 自己寫的一個cache小組件 2005-09-07 09:19 pesome

    鏈接開始有點錯誤,我已經更改!謝謝!  回復  更多評論   

    # re: 自己寫的一個cache小組件 2005-09-08 11:13 Xuefeng

    好像你的算法是整個Cache Pool都全部刷新,最好根據LRU算法

    另外Week引用好像可以適用于Cache  回復  更多評論   

    # re: 自己寫的一個cache小組件 2005-09-08 12:27 pesome

    呵呵,如果配置文件更改,我會刷新相應的cache。你所說的LRU算法應該是cache有大小限制,在已滿狀態下增加新的對象的替換算法,這個我還沒實現,呵呵!目前沒有大小限制。“Week引用好像可以適用于Cache ”,有點不明白,能說的更詳細些嗎?謝謝  回復  更多評論   

    # re: 自己寫的一個cache小組件 2005-09-12 15:26 Xuefeng

    cache的實現是很復雜的,如果不考慮大小限制肯定會內存溢出,定期刷新的cache還好一點,要實現讀寫同步的通用cache基本上特別困難,現在比較好的cache框架就是oscache  回復  更多評論   

    # re: 自己寫的一個cache小組件 2009-12-28 16:29 ll

    頂  回復  更多評論   

    <2009年12月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    導航

    統計

    公告

    主要記錄作者在學習java中的每一步足跡。除非特別說明,所有文章均為本blog作者原創,如需轉載請注明出處和原作者,如用于商業目的,需跟作者本人聯系。
    歡迎大家訪問:

    常用鏈接

    留言簿(16)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    相冊

    收藏夾

    java技術

    人間百態

    朋友們的blog

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 一区二区三区观看免费中文视频在线播放| 国产成人亚洲综合a∨| 中文字幕不卡免费视频| 亚洲情侣偷拍精品| sihu国产精品永久免费| 中文字幕亚洲一区二区va在线| 日本在线观看免费高清| 亚洲精品国产精品乱码不卞| 九九综合VA免费看| 亚洲色精品88色婷婷七月丁香| 国产99久久久久久免费看| 亚洲综合国产一区二区三区| 日本免费A级毛一片| 久久精品国产亚洲av麻豆色欲| 久热中文字幕在线精品免费| 中文文字幕文字幕亚洲色| 好男人看视频免费2019中文| 精品久久久久久亚洲综合网| 免费观看午夜在线欧差毛片| 精品久久久久久国产免费了 | 女人张腿给男人桶视频免费版| 亚洲一卡2卡4卡5卡6卡在线99 | 亚洲一区欧洲一区| 国产精品美女自在线观看免费 | 亚洲熟妇无码AV| 亚洲成A∨人片天堂网无码| 在线成人精品国产区免费| 亚洲精品偷拍无码不卡av| 四虎成人精品一区二区免费网站 | 亚洲人成电影福利在线播放| 香蕉97超级碰碰碰免费公| 麻豆亚洲AV成人无码久久精品| 亚洲午夜日韩高清一区| 91热久久免费精品99| 亚洲AV日韩AV无码污污网站| 亚洲片国产一区一级在线观看| 四虎最新永久免费视频| 羞羞网站在线免费观看| 亚洲熟妇av一区| 亚洲国产精品视频| 999国内精品永久免费视频|