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