背景:網(wǎng)站中幾類變化很小的數(shù)據(jù)分為幾類:第一類,博客文章,新聞,(百培網(wǎng)站中的課程信息,分校信息,地圖數(shù)據(jù)等)
第二類:學(xué)校各種門戶,聚集頁面。比如網(wǎng)站的首頁;
其中第一類:變化最小,一旦產(chǎn)生,變化的可能性就很小。
第二種:訪問機率很大,時常變化,主要由編輯人員手動維護。
方案1:提供兩臺memcached服務(wù)器(主從關(guān)系,保證數(shù)據(jù)穩(wěn)定),將訪問這兩類數(shù)據(jù)的方法緩存。在數(shù)據(jù)變更以后更新緩存即可
主要目的是隔離頻繁的數(shù)據(jù)的訪問。
方案2:將這兩類數(shù)據(jù)都生成靜態(tài)html文件,通過nginx指定前臺緩存訪問。缺點是更新數(shù)據(jù)后要生成新的文件,擔(dān)心時間久了
以后有磁盤碎片。另外多次讀取文件,可能有磁盤io影響。如果緩存到前臺,后臺數(shù)據(jù)變更了,前臺可能很難得到新的版本
方案3:將第一類生成靜態(tài)文件,第二類通過方法緩存起來,看上去好,但是我覺得實現(xiàn)起來比較困難。
實際上方案2,3都有一個實現(xiàn)上比較麻煩的地方,那就是所有的頁面頭部有一個用戶的登錄信息。如果緩存成文件這樣就我目前所想
頭部的數(shù)據(jù)只能通過ajax來得去了,這樣不但多了一次網(wǎng)絡(luò)io,也不允許頁面可以后退。
另外,我做這個方案有兩個目的,一種就是提高訪問速度,另外就是想從緩存的基礎(chǔ)上做數(shù)據(jù)庫讀寫分離,以便某些統(tǒng)計數(shù)據(jù)可以白天
及時的做