web緩存的種類有哪些?
1、數(shù)據(jù)庫(kù)緩存
我們可能聽(tīng)說(shuō)過(guò)memcached,它就是一種數(shù)據(jù)庫(kù)層面的緩存方案。數(shù)據(jù)庫(kù)緩存是指,當(dāng)web應(yīng)用的關(guān)系比較復(fù)雜,數(shù)據(jù)庫(kù)中的表很多的時(shí)候,如果頻繁進(jìn)行數(shù)據(jù)庫(kù)查詢,很容易導(dǎo)致數(shù)據(jù)庫(kù)不堪重荷。為了提供查詢的性能,將查詢后的數(shù)據(jù)放到內(nèi)存中進(jìn)行緩存,下次查詢時(shí),直接從內(nèi)存緩存直接返回,提供響應(yīng)效率。
2、CDN緩存
CDN緩存一般是由網(wǎng)站管理員自己部署,為了讓他們的網(wǎng)站更容易擴(kuò)展并獲得更好的性能。通常情況下,瀏覽器先向CDN網(wǎng)關(guān)發(fā)起Web請(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ù)器上。從瀏覽器角度來(lái)看,整個(gè)CDN就是一個(gè)源服務(wù)器,從這個(gè)層面來(lái)說(shuō),瀏覽器和服務(wù)器之間的緩存機(jī)制,在這種架構(gòu)下同樣適用。
3、代理服務(wù)器緩存
代理服務(wù)器是瀏覽器和源服務(wù)器之間的中間服務(wù)器,瀏覽器先向這個(gè)中間服務(wù)器發(fā)起Web請(qǐng)求,經(jīng)過(guò)處理后(比如權(quán)限驗(yàn)證,緩存匹配等),再將請(qǐng)求轉(zhuǎn)發(fā)到源服務(wù)器。代理服務(wù)器緩存的運(yùn)作原理跟瀏覽器的運(yùn)作原理差不多,只是規(guī)模更大。
4、瀏覽器緩存
每個(gè)瀏覽器都實(shí)現(xiàn)了 HTTP 緩存,我們通過(guò)瀏覽器使用HTTP協(xié)議與服務(wù)器交互的時(shí)候,瀏覽器就會(huì)根據(jù)一套與服務(wù)器約定的規(guī)則進(jìn)行緩存工作。
5、應(yīng)用層緩存
應(yīng)用層緩存是指我們?cè)诖a層面上做的緩存。通過(guò)代碼邏輯,把曾經(jīng)請(qǐng)求過(guò)的數(shù)據(jù)或資源等,緩存起來(lái),再次需要數(shù)據(jù)時(shí)通過(guò)邏輯上的處理選擇可用的緩存的數(shù)據(jù)。