CMS緩存實現(xiàn)的疑問
CMS中緩存顯的至關(guān)重要,CMS中的緩存主要有靜態(tài)緩存和動態(tài)緩存兩種技術(shù),但看下來現(xiàn)在覺得這兩種也只是對于最終信息頁面的緩存,現(xiàn)在的需求是:
1、站點、欄目、信息列表的緩存。
2、信息頁面的緩存。
對于需求2使用動態(tài)和靜態(tài)緩存的技術(shù)都可以較為簡單的實現(xiàn),但對于需求1則不同,需求1中的站點、欄目和信息列表是時時動態(tài)的,而且還有分頁以及結(jié)合權(quán)限控制的問題,在這種情況下,用生成靜態(tài)頁面的辦法是很難實現(xiàn)的,幾乎就不可能,那么通常我們想到的第一種最為直接的方法就是借助數(shù)據(jù)庫緩存來實現(xiàn),就拿基于Hibernate的來說,Hibernate提供的緩存是對于PO以及PO關(guān)聯(lián)的緩存,但同樣是無法實現(xiàn)上述需求中所要的效果的,目前暫時還沒想出什么好的解決方案,準備去翻閱一下jsr170,不知道是不是因為大家覺得對站點、欄目和信息列表做緩存沒意義,誠然,站點和欄目列表可能本來就不會很多,所以緩存的意義不是那么的大,但信息列表緩存的意義則非常明顯。
分頁以及結(jié)合權(quán)限控制是實現(xiàn)此緩存技術(shù)的難點,其實這個也可以引申到整個系統(tǒng),成為系統(tǒng)級的緩存技術(shù),如大家有這方面的經(jīng)驗,請不吝賜教!
列一個校驗的場景:
在一個信息列表中,每個信息的權(quán)限有多種情況,比如信息列表中存在A、B、C三條信息,各條信息的權(quán)限授予給了(guest,admin)、(guest)、(admin),這個時候要獲取guest的信息列表,加入cache需要提高效率的地方就在于避免獲取信息列表時需與數(shù)據(jù)庫進行實時的查詢,同時要注意,一般來說,系統(tǒng)的信息數(shù)據(jù)量會是比較的大。
posted on 2005-10-18 10:36 BlueDavy 閱讀(1478) 評論(1) 編輯 收藏 所屬分類: 系統(tǒng)設(shè)計