Step1資料系統技術(4.採用伺服器端檔案快取)

來源:互聯網
上載者:User

    前一章介紹了Cache和http狀態代碼304的技術,這屬於用戶端檔案快取,使用該技術可以靈活的將每一個使用者訪問伺服器的次數和位元組數減少到最低。

    不過有這樣一個問題存在,就是上面的緩衝都是針對單個使用者的,如果該使用者通常在緩衝時間內只訪問該檔案一次,是沒有效果的,因此就算這個檔案每天被再多的使用者訪問,也起不到緩衝效果,而這種情況下需要使用服務端緩衝。

    使用服務端緩衝的理由很多,我使用的主要理由是每個頁面產生對伺服器效能的要求過大,因為每個頁面產生的過程式需要多次訪問資料庫,並有可能需要從別的來源擷取資料,而這些都是對效能影響很大的部分,而實際上,1000個使用者訪問的同一個頁面,伺服器返回的內容是相同的,這種情況下伺服器產生1000次頁面是完全不可取的,如果只在該頁面初次被訪問的時候產生一遍,而在一定時間內該頁面被再次訪問直接使用緩衝,將會獲得較大的伺服器效能提升。

    我的伺服器緩衝過程是這樣的:當使用者訪問一個頁面的時候(假設不考慮用戶端緩衝,因為本章講的是服務端緩衝),首先將該URL映射為硬碟上的的一個檔案路徑,檢查該檔案是否存在。如果存在,則檢查該檔案的最後修改日期,如果該檔案存在並且還沒有到期,則直接返回該檔案內容,而不需要進行資料庫操作;如果檔案不存在或已經到期,則組建檔案內容儲存到相應的檔案,再返回該檔案內容。

    這樣做有幾個好處:

    1.並不是所有的檔案都預先產生緩衝,節省磁碟空間,而且基本上不需要手工幹預

    2.不需要建立快取資料庫,因為我認為,只要涉及到訪問資料庫,就會造成效能和穩定性問題,因為資料庫可能是在另一台機器上,我記得有一次我的資料庫崩潰了,而我發現當天網站70%的訪問還是正常的,因為常被訪問的頁面已經被緩衝了。

    3.緩衝訪問快,因為判斷檔案是否存在和檔案的時間是很快的過程,而且,在大多數的程式語言之中,直接將一個檔案返回到瀏覽器也是很方便的過程

    這樣做也有幾個缺點:

    1.如果有人攻擊或者遍曆你的網站的頁面,網站的所有頁面會很快的被產生,硬碟的空間會急劇增加

    2.緩衝沒有自動清除的功能,也就是說,如果要節省空間的,可能需要手工執行一個程式,這個程式自動在快取檔案夾之中找到到期的檔案並刪除

    總體上來講,根據頁面產生過程的複雜度和資料庫等頁面產生模組的穩定性來決定是否使用這種伺服器端緩衝,是很有作用的。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.