页面缓存与数据缓存
2018-1-25
ubuntu里pwd查看當前目錄什么是redis?
redis的全稱為remote dictionary server,即遠程數據服務,緩存數據庫是由意大利人開發的一款內存高速,是用C語言編寫的,數據模型為key-value,它支持豐富的數據類型,比如string,list,hash,set,sorted set,它可以支持持久化,保證了數據的安全。
緩存的兩種類型:數據緩存,頁面緩存(smarty)
頁面緩存
1.前言:如果你對前端稍有了解的話,那么你對 “頁面緩存” 這個名詞應該不是特別陌生了,合理的頁面緩存可以讓頁面的執行效率大大的提高(在第一次訪問或者Ctrl+F5強制刷新的時候是不會感受到的),而不是我們一味的設置cache-control為no-cache,當然,如果我們的緩存參數設置的不合理的話,也會給我們帶來一定的麻煩。
2.原理:瀏覽器在對資源的第一次請求之后,會把資源的一部分存儲在計算機的臨時文件空間,當再次請求的時候,按照特定的策略加載緩存中的資源,從而減少http請求的次數與傳輸的數據量,提高了瀏覽效率。
(1)首次請求時:任意打開一個瀏覽器,瀏覽器就會對自動設置的參數進行加載,其中就包括緩存設置參數。我們在瀏覽器的地址欄輸入一個url(http://www.baidu.com),這時候瀏覽器會發送一個簡單的HTTP請求報文頭給相應的服務器,這個報文頭主要包含的信息是請求的url,接受的編碼約定,緩存控制等信息。服務器接受到了請求報文頭,一堆業務處理完畢之后,balabala。。。,會給出HTTP響應報文,響應報文格式分為報文頭和報文體,響應報文頭中的信息是很重要的,響應狀態碼是200,說明是正確返回。cache-control設定了有效時間,在這個時間內新打開新網頁(或者地址欄回車)不需要去請求服務器。報文內容類型是image/gif,
最近修改時間是。。。,最近修改時間在瀏覽器刷新的時候有很大的用處,瀏覽器刷新的時候,會發送對該圖片請求的報文,得到的響應報文中如果最近修改時間和緩存的一致,那么瀏覽器將會從緩存中讀取該圖片的信息(狀態碼是304),如果兩個時間不一致,會從服務器請求得到最新的文件,并緩存。 服務器類型等其他信息。該響應報文接受到之后,瀏覽器解讀報文體內容,并打開顯示給用戶,這是主要的工作。除此之外,瀏覽器還根據報文頭的信息,確定一些緩存規則,比如no-cache的不緩存。
(2)再次請求:再次請求時,才會體現出我們頁面緩存的作用。如果這個時候我們在地址欄按照原有url回車的話,針對該圖片,是沒有發送HTTP請求的,更沒有請求服務器資源,瀏覽器直接從緩存空間讀取該圖片。檢查服務器,得知該文件沒有修改,那么瀏覽器將從緩存中獲取該圖片。
3.緩存對象:頁面緩存,主要緩存什么東西呢?
我們首先要明確一下Content-Type的概念。我們知道HTTP協議是類似MIME的消息結構,MIME類型是和文檔的后綴名相關的,我們在請求服務器然后獲取到數據,我們只得到了數據,并不知道文檔后綴的名字(比如沒辦法區分css和js),這時候服務器必須使用附加的信息來告訴客戶端數據的類型,服務器在發送真正的數據之前,就要先發送標志數據的MIME類型的信息,這個信息使用Content-type關鍵字進行定義,常見的有text/html、text/css、application/x-javascript、image/gif、image/jpeg、audio/x-mpegurl等,如果這些類型是瀏覽器能直接識別的,那么瀏覽器就直接打開顯示出來,否則要關聯注冊表,找到對應的程序來打開,比如audio。。。頁面緩存緩存對象除了text/html之外,image/gif、image/jpeg的cache-control一般都通過設置max-age來實現緩存,application/x-javascript通過Last-Modified或者ETags來實現。
數據緩存
數據緩存我們應該都不是很陌生了,比如說高速緩存等等。。。
使用緩存來減輕數據庫的負擔。在開發網站的時候如果有一些數據在短時間內不會發生變化,而且他們還要被頻繁的訪問,為了提高用戶請求速度和降低網站的負載,把這些數據放在一個讀取速度更快的介質上(或者是通過較小的計算量就可以獲得該數據),該行為就叫做數據的緩存。該介質可以是文件,數據庫,內存,內存常用于數據緩存。
頁面緩存:CMS(content manage system)內存管理系統里面。
數據緩存:頁面的具體數據里面。
總結
- 上一篇: 24. Swap Nodes in Pa
- 下一篇: 如何选择SSL 证书服务