電腦把最常用的文件從存儲器里提出來臨時放在緩存里以加快運行。因為緩存往往使用的是ram,電腦里大的緩存就是內存條了,最快的是cpu上鑲的l1和l2緩存,顯卡的顯存是給gpu用的緩存,硬盤上也有16m或者32m的緩存。千萬不能把緩存理解成一個東西,它是一種處理方式的統稱!
頁面緩存用于服務器上的靜態和動態對象的請求。請求失敗叫做緩存未命中,原因可能是緩存滿了,也可能是緩存未滿,但請求的頻率較低或最近重啟過。未命中緩存的請求會被直接傳遞給服務器,并且用該請求回答并填充頁面緩存,從而替換緩存中最近很少使用的數據。
頁面緩存:每次訪問頁面的時候,都會先檢測相應的緩存頁面文件是否存在,如果不存在,就連接數據庫,得到數據,顯示頁面并同時生成緩存頁面文件,這樣下次訪問的時候頁面文件就發揮作用了
網站中頁面緩存的應用場景:
1、對耗時的查詢進行緩存,例如產品列表頁的查詢。
2、可以緩存整個頁面的html,提高訪問響應能力;
3、針對局部頁面元素進行緩存;
4、和上下文相關的用戶數據,例如用戶從訂單埴寫頁進入到訂單成功頁,或者是從產品列表頁點擊詳細產品進行預訂時的訂單填寫頁,此時這兩個頁面之間都需要傳遞大量的相關數值,我們可以把所有的數值封裝在一個類中,然后通過頁面緩存進行通信。
5、對復雜數據的結果進行緩存,例如一個查詢需要結合多個數據集,然后根據這些數據集進行相應的運算,即使每個子集查詢有緩存,但還是需要額外的運算,這種情況可以考慮頁面緩存計算后的結果
一、在web服務器處理請求前實現頁面緩存
在web服務器處理請求前實現頁面緩存,這樣建站系統就會得到很大的可擴展性。生成動態內容的web服務器工作量會大大減少,因為計算過的結果在此之前的時間已被緩存了。提供靜態內容的web服務器不需要查詢的內容,可以少用一些緩存空間。因此,對于靜態網站來說,緩存的作用就不那么明顯了,因為輸出內容本身就沒有太大的計算量和負擔。
二、要實現頁面緩存必須使用正確的http頭,確保對內容和查詢結果進行大化的緩存,并且網站建設時避免通過meta標簽刷新頁面。
三、盡可能加入rfc2616標準中的另一個http響應頭參數,從而大化內容的可緩存性。
這個新的參數是etag,也就是實體標簽,目的是配合if-none-match有條件地從服務器獲得請求。etag是由服務器端的資源改變了,那么服務器會為它分配一個新的etag。假設能被瀏覽器正確地支持,對象和它的etag標簽就會被瀏覽器緩存,之后瀏覽器向web服務器發送的if-none-match請求都會包含該標簽。如果標簽匹配,服務器會用http 304 not modified進行響應。如果該標簽與服務器上的不一致,服務器會發送更新過的對象以及與之相關的etag。
在大多數建站系統中etag是可選的,但如果要確保在任何特定的頁面或對象的整個網絡傳輸中,頁面緩存和代理緩存具有更大的可緩存性,強烈推薦使用etag。最后再次建議所有
成都網站建設人員都重視頁面緩存,利用好緩存將節省大量的硬件投入成本。
影響頁面緩存命中率的因素。
1:數據時實性,每個業務系統都對自己的數據有相應的要求,有些數據的實時性非常強,像每日的股票信息,這種情況如果設置了緩存,緩存的命中率會特別低。
2:緩存粒度問題,一般來說是頁面緩存的跨度太大,即此時的key值包含的條件太多,會出現緩存命中率特別低的情況。
四、提高頁面緩存命中率的方法:
1:增大存儲介質的容量;
2:對非常熱點的數據進行捕捉,可以采用實時更新緩存的方式來平衡緩存與實時性的問題,例如可以單獨開啟一個后臺服務來定時做更新緩存的工作。
3:調整緩存key值的算法,盡量保證緩存key的細粒度,key-value就是很好的細粒度例子。
4:根據業務調整頁面緩存的過期策略。
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源:
創新互聯