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