緩存的基本知識

在整個計算機體系構(gòu)造中(無論是硬件層面還是軟件層面),緩存都是無處不在的。

在計算機硬件構(gòu)造中,由于兩種介質(zhì)的速度不匹配,高速介質(zhì)在和低速介質(zhì)交互時速度趨向低速方,這就導致了高速介質(zhì)的資源閑置。而通過引入第三種介質(zhì)(速度和成本介于兩者中間),將低速方讀寫的部分內(nèi)容數(shù)據(jù)保存在該介質(zhì)中,高速方大多數(shù)情況下則無需和低速方直接交互,這樣就能整體提升了交互的性能。這就是計算機體系中緩存的由來。比較典型的就是CPU緩存(CPU寄存器=>L1 cahce =>L2 cache =>內(nèi)存=>硬盤),如圖:

 

在計算機系統(tǒng)和應用軟件層面,緩存更是無處不在。我們在使用瀏覽器上網(wǎng)時,很多靜態(tài)資源會被緩存到本地。我們在手機上采用微信聊天時,很多好友的頭像等數(shù)據(jù)會被緩存到手機中。在操作系統(tǒng)層面,I/O操作也會被內(nèi)核緩存(一般將數(shù)據(jù)緩存在文件系統(tǒng)的緩存頁中),當然,這個可能相比前兩個場景更加抽象,但緩存的目的都是一致的,為了提升讀寫性能。

 

緩存在狹義上解決介質(zhì)讀寫速度不匹配問題,廣義上包括任何利用中間媒介提高速度的方法,包括:空間換時間,動態(tài)操作變?yōu)殪o態(tài)操作。

 

緩存(CACHE)和緩沖(BUFFER)

緩存:可以共享,多種數(shù)據(jù),大小不固定,可以重復使用,已知數(shù)據(jù),用于提高IO效率。

緩沖:不可以共享,單一數(shù)據(jù),大小固定,讀取后失效,命中100%,未知數(shù)據(jù),用于減少IO次數(shù)。

緩存的屬性

命中率:從緩存中返回正確數(shù)據(jù)的次數(shù)/總請求次數(shù)。

網(wǎng)友評論