摘要:導(dǎo)言本文將列舉站點(diǎn)常用緩存技術(shù)的基本概念與特點(diǎn),為想要了解緩存技術(shù)的讀者們提供提綱式的技術(shù)介紹。這些指令指定用于阻止緩存對(duì)請(qǐng)求或響應(yīng)造成不利干擾的行為。參考連接網(wǎng)站緩存技術(shù)總結(jié)高性能網(wǎng)站的關(guān)鍵緩存靜態(tài)資源緩存
導(dǎo)言:本文將列舉web站點(diǎn)常用緩存技術(shù)的基本概念與特點(diǎn),為想要了解web緩存技術(shù)的讀者們提供提綱式的技術(shù)介紹。
在互聯(lián)網(wǎng)迅速發(fā)展的今天,一個(gè)互聯(lián)網(wǎng)站點(diǎn)的請(qǐng)求量是十分驚人的,動(dòng)輒上萬(wàn)的每秒請(qǐng)求數(shù)不僅會(huì)讓服務(wù)器處于高負(fù)荷的環(huán)境中,對(duì)于數(shù)據(jù)庫(kù)來(lái)說(shuō)更是苦不堪言。而網(wǎng)頁(yè)以及數(shù)據(jù)的讀取速度的快慢,又會(huì)影響到產(chǎn)品的用戶體驗(yàn),靈活使用各種緩存技術(shù)對(duì)于提高服務(wù)器的可用性以及用戶體驗(yàn)是至關(guān)重要的一環(huán)。
1. 使用緩存的作用存儲(chǔ)頻繁訪問(wèn)的數(shù)據(jù)
內(nèi)存緩存減少磁盤I/O
保存耗時(shí)的操作,以便下次使用
2. 網(wǎng)站緩存的分類網(wǎng)站緩存按照存放的地點(diǎn)不同,可以分為服務(wù)端緩存和客戶端緩存。
服務(wù)端緩存
頁(yè)面緩存
數(shù)據(jù)緩存
數(shù)據(jù)庫(kù)緩存
客戶端緩存
瀏覽器緩存
代理服務(wù)器緩存
網(wǎng)關(guān)緩存
3. 服務(wù)端緩存如果一個(gè)web服務(wù)是計(jì)算密集型的,服務(wù)器內(nèi)存或者CPU等性能不好,或者像web系統(tǒng)使用的是與他人共享的虛擬服務(wù)器,只能得到部分內(nèi)存和CPU的時(shí)候,服務(wù)器的計(jì)算時(shí)間可能占整個(gè)頁(yè)面響應(yīng)時(shí)間的很大一部分。這種情況下,優(yōu)化服務(wù)器端的緩存是一件非常重要的事情。
3.1 網(wǎng)頁(yè)緩存頁(yè)面緩存是將動(dòng)態(tài)頁(yè)面直接生成靜態(tài)的頁(yè)面放在服務(wù)器端,用戶調(diào)取相同頁(yè)面時(shí),靜態(tài)頁(yè)面將直接下載到客戶端,不再需要通過(guò)程序的運(yùn)行和數(shù)據(jù)庫(kù)的訪問(wèn),大大節(jié)約了服務(wù)器的負(fù)載。
早期的網(wǎng)站很多使用發(fā)布系統(tǒng)來(lái)完成這個(gè)功能,在后臺(tái)發(fā)布時(shí)將數(shù)據(jù)和頁(yè)面模板整合成靜態(tài)頁(yè)面,存放在硬盤中。但這樣的缺陷很明顯,一是后臺(tái)的程序的編寫很復(fù)雜,二是緩存的控制只能通過(guò)人為的方式來(lái)控制,這對(duì)一些更新十分頻繁的網(wǎng)站就是一個(gè)噩夢(mèng),網(wǎng)站可能在不停的做緩存的刪除和重建。當(dāng)然后來(lái)出現(xiàn)了一些自動(dòng)更新這些緩存的框架,比如PHP的Smarty模板,可以定義緩存過(guò)期的時(shí)間,自動(dòng)去更新這些緩存。這對(duì)一些信息發(fā)布類網(wǎng)站已經(jīng)確實(shí)適用了。
除了整個(gè)頁(yè)面的緩存技術(shù),還有一種技術(shù)叫做“頁(yè)面片段緩存”,將頁(yè)面的部分而不是全部進(jìn)行緩存。代表作有ESI Cache。
3.2 數(shù)據(jù)緩存將從數(shù)據(jù)庫(kù)查詢的結(jié)果或是需要多服務(wù)器共享的數(shù)據(jù)緩存到內(nèi)存或者文件中,以便再次訪問(wèn)同一資源時(shí)無(wú)需再次對(duì)數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn),提高請(qǐng)求數(shù)據(jù)的響應(yīng)速度以及降低數(shù)據(jù)庫(kù)的負(fù)載。
目前緩存的做法分為兩種模式:
內(nèi)存緩存:緩存數(shù)據(jù)存放在服務(wù)器的內(nèi)存空間中,現(xiàn)在常用的內(nèi)存緩存有Redis以及Memcached。
優(yōu)點(diǎn):速度快
缺點(diǎn):資源有限
文件緩存:緩存數(shù)據(jù)存放在服務(wù)器的硬盤空間中。
優(yōu)點(diǎn):容量大
缺點(diǎn):速度偏慢,尤其在緩存數(shù)量巨大時(shí)
3.3 數(shù)據(jù)庫(kù)緩存數(shù)據(jù)庫(kù)的緩存一般由數(shù)據(jù)庫(kù)提供,比如Oracle,可以對(duì)表建立高速緩存,提高對(duì)經(jīng)常訪問(wèn)的數(shù)據(jù)的訪問(wèn)速度。對(duì)于查詢操作遠(yuǎn)遠(yuǎn)多于修改操作的數(shù)據(jù)庫(kù),開(kāi)啟數(shù)據(jù)庫(kù)查詢緩存是很有益的;但是對(duì)于修改操作很多的數(shù)據(jù)庫(kù),由于緩存經(jīng)常失效,就起不到加速的效果。
4. 客戶端緩存客戶端緩存,就是把緩存保存在除Web服務(wù)器之外的其他地方,加速同一客戶端訪問(wèn)相同資源時(shí)的速度。
4.1 瀏覽器緩存當(dāng)瀏覽器訪問(wèn)一個(gè)站點(diǎn)的時(shí)候,網(wǎng)絡(luò)連接是主要瓶頸,可以通過(guò)設(shè)置瀏覽器緩存來(lái)避免發(fā)起請(qǐng)求,或者僅進(jìn)行極低流量的HTTP請(qǐng)求。設(shè)置瀏覽器緩存,通常有兩個(gè)主要作用:
對(duì)用戶來(lái)說(shuō),減少請(qǐng)求可以更快地加載頁(yè)面,節(jié)省流量。
對(duì)網(wǎng)站來(lái)說(shuō),減少帶寬壓力和費(fèi)用。
服務(wù)器通過(guò)設(shè)置請(qǐng)求返回的HTTP頭,來(lái)通知瀏覽器按照服務(wù)器的要求進(jìn)行響應(yīng)的緩存。主要使用的HTTP頭如下:
Expires: 過(guò)期時(shí)間。這種緩存是最快的,因?yàn)闆](méi)有任何HTTP請(qǐng)求的發(fā)生。當(dāng)用戶需要這個(gè)資源的時(shí)候,瀏覽器就直接從緩存(在硬盤中)讀取,不再需要詢問(wèn)服務(wù)器端的意見(jiàn)。
Last-Modified: 最后修改時(shí)間。通過(guò)這種緩存方式,無(wú)論資源是否發(fā)生了更新,仍然至少會(huì)發(fā)生一來(lái)一去HTTPS頭的傳輸和接收,所以速度比不上Expires。
ETag: 實(shí)體標(biāo)簽。和Last-Modified類似,也是WEB服務(wù)器和客戶端用于確認(rèn)緩存組件的有效性的一種機(jī)制。當(dāng)資源被修改,其ETag也發(fā)生改變。ETag相對(duì)Last- Modified更精確,但在多服務(wù)器可能造成混亂。
Cache-Control: 緩存控制。這個(gè)字段用于指定所有緩存機(jī)制在整個(gè)請(qǐng)求/響應(yīng)鏈中必須服從的指令。這些指令指定用于阻止緩存對(duì)請(qǐng)求或響應(yīng)造成不利干擾的行為。比如:Cache-Control: max-age=3600, public
4.2 代理服務(wù)器緩存代理服務(wù)器是一種處在客戶端和服務(wù)端中間的服務(wù)器,而代理服務(wù)器緩存以共享緩存的方式保存著報(bào)文副本,可以減少客戶端到原始服務(wù)器的長(zhǎng)距離請(qǐng)求。由于代理服務(wù)器緩存是一種共享緩存;往往有大量的訪問(wèn)者使用,每個(gè)副本被大量重用,因此,其在降低延時(shí)和網(wǎng)絡(luò)流量上很有用。
4.3 網(wǎng)關(guān)緩存網(wǎng)關(guān)緩存也被稱為“反向代理緩存”或“替代緩存”,存與上述代理服務(wù)器緩存大體類似,同樣起著中介的作用。網(wǎng)關(guān)緩存一般是網(wǎng)站管理員自己部署,讓他們的網(wǎng)站更容易擴(kuò)展并獲得更好的性能。
5. 總結(jié)本文簡(jiǎn)單的列舉了Web站點(diǎn)常用的緩存技術(shù)的分類以及簡(jiǎn)要的說(shuō)明,對(duì)于不同的生產(chǎn)環(huán)境,往往會(huì)采取多樣的緩存方案,提高整站的可用性以及用戶體驗(yàn)。只有對(duì)各個(gè)緩存技術(shù)都有更深入的認(rèn)識(shí),才能設(shè)計(jì)出一套更優(yōu)秀的緩存方案。
參考連接
1. 網(wǎng)站緩存技術(shù)總結(jié)( ehcache memcache redis): http://2277259257.iteye.com/b...
2. 高性能網(wǎng)站的關(guān)鍵-緩存: https://www.cloudxns.net/Supp...
3. HTTP靜態(tài)資源緩存: http://www.cnblogs.com/ivanfu...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/61848.html
摘要:二目的是一個(gè)經(jīng)策略性部署的整體系統(tǒng),從技術(shù)上全面解決由于網(wǎng)絡(luò)帶寬小用戶訪問(wèn)量大網(wǎng)點(diǎn)分布不均而產(chǎn)生的用戶訪問(wèn)網(wǎng)站響應(yīng)速度慢的根本原因。 一、CDN全稱:??Content Delivery Network或Content Ddistribute Network,即內(nèi)容分發(fā)網(wǎng)絡(luò)。 ??二、目的:??CDN是一個(gè)經(jīng)策略性部署的整體系統(tǒng),從技術(shù)上全面解決由于網(wǎng)絡(luò)帶寬小、用戶訪問(wèn)量大、網(wǎng)點(diǎn)分布不...
摘要:目前,我們看到的老蔣采用的部署的環(huán)境,在鏡像中配置,于是我們會(huì)稱作為。有沒(méi)有一件傻瓜式安裝工具腳本呢這里老蔣要推薦的來(lái)自國(guó)內(nèi)比較老牌且一直更新維護(hù)的一鍵安裝包,我們可以較為直觀且無(wú)人值守的安裝需要的網(wǎng)站服務(wù)器環(huán)境。如今我們建站較多的還是會(huì)選擇VPS云服務(wù)器,很少會(huì)去選擇虛擬主機(jī),固然前者有很多的優(yōu)點(diǎn)。不過(guò)相比虛擬主機(jī)不同的是,VPS云服務(wù)器需要我們自己配置WEB環(huán)境,而且我們較多的還是會(huì)選擇...
摘要:緩存緩存,也叫網(wǎng)關(guān)緩存反向代理緩存。瀏覽器先向網(wǎng)關(guān)發(fā)起請(qǐng)求,網(wǎng)關(guān)服務(wù)器后面對(duì)應(yīng)著一臺(tái)或多臺(tái)負(fù)載均衡源服務(wù)器,會(huì)根據(jù)它們的負(fù)載請(qǐng)求,動(dòng)態(tài)將請(qǐng)求轉(zhuǎn)發(fā)到合適的源服務(wù)器上。雖然這種架構(gòu)負(fù)載均衡源服務(wù)器之間的緩存沒(méi)法共享,但卻擁有更好的處擴(kuò)展性。 一、前言? 工作上遇到一個(gè)這樣的需求,一個(gè)H5頁(yè)面在APP端,如果勾選已讀狀態(tài),則下次打開(kāi)該鏈接,會(huì)跳過(guò)此頁(yè)面。用到了HTML5 的本地存儲(chǔ) API ...
摘要:因?yàn)槁酚蓪用媸軜I(yè)務(wù)影響很大,經(jīng)常修改一些功能的行為,所以后來(lái)大部分測(cè)試都是針對(duì)層面的單元測(cè)試。在我了解的過(guò)程中,我發(fā)現(xiàn)中文網(wǎng)絡(luò)上對(duì)的討論非常分散,于是我創(chuàng)建了中文社區(qū),到年末已經(jīng)有個(gè)注冊(cè)用戶和個(gè)帖子了。 https://jysperm.me/2016/02/programming-of-2015/ 從 2014 年末開(kāi)始開(kāi)發(fā)的一個(gè)互聯(lián)網(wǎng)金融項(xiàng)目終于在今年三月份上線了,這是一個(gè) Node...
摘要:因?yàn)槁酚蓪用媸軜I(yè)務(wù)影響很大,經(jīng)常修改一些功能的行為,所以后來(lái)大部分測(cè)試都是針對(duì)層面的單元測(cè)試。在我了解的過(guò)程中,我發(fā)現(xiàn)中文網(wǎng)絡(luò)上對(duì)的討論非常分散,于是我創(chuàng)建了中文社區(qū),到年末已經(jīng)有個(gè)注冊(cè)用戶和個(gè)帖子了。 https://jysperm.me/2016/02/programming-of-2015/ 從 2014 年末開(kāi)始開(kāi)發(fā)的一個(gè)互聯(lián)網(wǎng)金融項(xiàng)目終于在今年三月份上線了,這是一個(gè) Node...
閱讀 3485·2019-08-30 15:55
閱讀 2071·2019-08-30 15:44
閱讀 1490·2019-08-30 12:47
閱讀 767·2019-08-30 11:05
閱讀 1651·2019-08-30 10:54
閱讀 680·2019-08-29 16:07
閱讀 3599·2019-08-29 14:17
閱讀 2253·2019-08-23 18:31