硬件型號(hào):IS61LV25616AL
系統(tǒng)版本:存儲(chǔ)器系統(tǒng)
緩存就是數(shù)據(jù)交換的緩沖區(qū)(稱作Cache),當(dāng)某一硬件要讀取數(shù)據(jù)時(shí),會(huì)首先從緩存中查找需要的數(shù)據(jù),如果找到了則直接執(zhí)行,找不到的話則從內(nèi)存中找。由于緩存的運(yùn)行速度比內(nèi)存快得多,故緩存的作用就是幫助硬件更快地運(yùn)行。
緩存的本質(zhì)就是用空間換時(shí)間,犧牲數(shù)據(jù)的實(shí)時(shí)性,以服務(wù)器內(nèi)存中的數(shù)據(jù)暫時(shí)代替從數(shù)據(jù)庫讀取最新的數(shù)據(jù),減少數(shù)據(jù)庫IO,減輕服務(wù)器壓力,減少網(wǎng)絡(luò)延遲,加快頁面打開速度。
因?yàn)榫彺嫱褂玫氖荝AM(斷電即掉的非永久儲(chǔ)存),所以在用完后還是會(huì)把文件送到硬盤等存儲(chǔ)器里永久存儲(chǔ)。電腦里最大的緩存就是內(nèi)存條了,最快的是CPU上鑲的L1和L2緩存,顯卡的顯存是給顯卡運(yùn)算芯片用的緩存,硬盤上也有16M或者32M的緩存。
(圖片來源于互聯(lián)網(wǎng))
緩存的種類和應(yīng)用
文件緩存:文件緩存是把一些需要高速存取的變量緩存在內(nèi)存中。模板引擎用的就是文件緩存機(jī)制,把動(dòng)態(tài)代碼編譯成靜態(tài)文件放入硬盤,不用每次訪問都編譯,直接讀出即可。
瀏覽器緩存:瀏覽器緩存根據(jù)一套與服務(wù)器約定的規(guī)則進(jìn)行工作,在同一個(gè)會(huì)話過程中會(huì)檢查一次并確定緩存的副本足夠新。如果在瀏覽過程中前進(jìn)或后退時(shí)訪問到同一個(gè)圖片,這些圖片可以從瀏覽器緩存中調(diào)出而即時(shí)顯示。
數(shù)據(jù)庫緩存:常用的緩存方案有memcached、redis等。把經(jīng)常需要從數(shù)據(jù)庫查詢的數(shù)據(jù)、或經(jīng)常更新的數(shù)據(jù)放入到緩存中,這樣下次查詢時(shí),直接從緩存直接返回,減輕數(shù)據(jù)庫壓力,提升數(shù)據(jù)庫性能。
Web應(yīng)用層緩存:應(yīng)用層緩存指的是從代碼層面上,通過代碼邏輯和緩存策略,實(shí)現(xiàn)對(duì)數(shù)據(jù)、頁面、圖片等資源的緩存,可以根據(jù)實(shí)際情況選擇將數(shù)據(jù)存在文件系統(tǒng)或者內(nèi)存中,減少數(shù)據(jù)庫查詢或者讀寫瓶頸,提高響應(yīng)效率。
服務(wù)器緩存:包括代理服務(wù)器緩存和CDN緩存。
代理服務(wù)器緩存:代理服務(wù)器是瀏覽器和源服務(wù)器之間的中間服務(wù)器,瀏覽器先向這個(gè)中間服務(wù)器發(fā)起Web請(qǐng)求,經(jīng)過處理后(比如權(quán)限驗(yàn)證,緩存匹配等),再將請(qǐng)求轉(zhuǎn)發(fā)到源服務(wù)器。代理服務(wù)器緩存的運(yùn)作原理跟瀏覽器的運(yùn)作原理差不多,只是規(guī)模更大??梢园阉斫鉃橐粋€(gè)共享緩存,不只為一個(gè)用戶服務(wù),一般為大量用戶提供服務(wù),因此在減少響應(yīng)時(shí)間和帶寬使用方面很有效,同一個(gè)副本會(huì)被重用多次。
CDN緩存:也叫網(wǎng)關(guān)緩存、反向代理緩存。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ù)器上。
雖然這種架構(gòu)負(fù)載均衡源服務(wù)器之間的緩存沒法共享,但卻擁有更好的處擴(kuò)展性。從瀏覽器角度來看,整個(gè)CDN就是一個(gè)源服務(wù)器。
(圖片來源于互聯(lián)網(wǎng))