什么是緩存

緩存(cache) 這個概念,最早是出現(xiàn)在 計算機硬件設計 中。
比如 cpu cache,是用于減少處理器訪問內存所需平均時間的部件。該部件的容量小于內存,但速度比內存高很多,接近處理器的頻率。

如上圖示,在 計算機硬件設計中
當處理器(cpu)發(fā)送內存訪問請求時,先查看緩存中是否有請求數(shù)據(jù),
如果存在(命中),則不訪問內存直接返回該數(shù)據(jù);
如果不存在(未命中),則先把內存中的數(shù)據(jù)存入緩存,再講其返回處理器

由于緩存速度高于內存速度,因此能整體提高計算機的性能。


由于該設計思路的優(yōu)秀,在 計算機軟件設計中 中,就借鑒了該思路來提高系統(tǒng)性能,如下圖示:

如上圖示,整體思路跟硬件設計中是一樣的。
內存的讀寫速度遠大于磁盤的讀寫速度,將常用的數(shù)據(jù)緩存在內存中,提高訪問速度,能提高服務的整體性能

在計算機軟件系統(tǒng)的,內存的類型大概有以下幾種類型:
1. 分布式緩存:當出現(xiàn)大流量、高并發(fā)時,數(shù)據(jù)庫(db) 性能常常成為瓶頸,
這時常會引進分布式緩存來緩解 db 的壓力。常見的有redis,memcached

2. 進程內緩存(本地緩存):由于分布式緩存會有網(wǎng)絡開銷,在對性能極高要求的場景下,
分布式緩存可能無法滿足性能要求,于是就有了 本地緩存。
本地緩存的有點是少了網(wǎng)絡開銷,節(jié)省了內網(wǎng)寬帶,有更低的響應延遲,能滿足更高業(yè)務性能的需求。
缺點是多個應用之間無法共享緩存,且難以保持進程內緩存的一致性

3. 語言級的緩存:有的動態(tài)語言會有語言級的緩存,如php

4. cdn緩存,http緩存,web瀏覽器緩存
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容