緩存的分類

客戶端緩存

傳統(tǒng)互聯(lián)網(wǎng):頁面緩存和瀏覽器緩存
移動(dòng)互聯(lián)網(wǎng):APP緩存

頁面緩存

頁面緩存:頁面自身對(duì)某些元素或全部元素進(jìn)行存儲(chǔ),并保存成文件。
html5:Cookie、WebStorage(SessionStorage和LocalStorage)、WebSql、indexDB、Application
Cache等
開啟步驟:
1)設(shè)置manifest描述文件

CACHE MANIFEST
#comment

js/index.js 
img/bg.png

2)html關(guān)聯(lián)manifest屬性

<html lang="en" manifest="demo.appcache">

使用LocalStorage進(jìn)行本地的數(shù)據(jù)存儲(chǔ),示例代碼:

localStorage.setItem("Name","張飛") 
localStorage.getItem("Name") 
localStorage.removeItem("Name") 
localStorage.clear()
瀏覽器緩存

當(dāng)客戶端向服務(wù)器請(qǐng)求資源時(shí),會(huì)先抵達(dá)瀏覽器緩存,如果瀏覽器有“要請(qǐng)求資源”的副本,就可以直接從瀏覽器緩存中提取而不是從原始服務(wù)器中提取這個(gè)資源。
瀏覽器緩存可分為強(qiáng)制緩存和協(xié)商緩存。
強(qiáng)制緩存:直接使用瀏覽器的緩存數(shù)據(jù)
條件:Cache-Control的max-age沒有過期或者Expires的緩存時(shí)間沒有過期

<meta http-equiv="Cache-Control" content="max-age=7200" />
<meta http-equiv="Expires" content="Mon, 20 Aug 2010 23:00:00 GMT" />

協(xié)商緩存:服務(wù)器資源未修改,使用瀏覽器的緩存(304);反之,使用服務(wù)器資源(200)。

<meta http-equiv="cache-control" content="no-cache">
APP緩存

原生APP中把數(shù)據(jù)緩存在內(nèi)存、文件或本地?cái)?shù)據(jù)庫(SQLite)中。比如圖片文件。

網(wǎng)絡(luò)端緩存

通過代理的方式響應(yīng)客戶端請(qǐng)求,對(duì)重復(fù)的請(qǐng)求返回緩存中的數(shù)據(jù)資源。

Web代理緩存

可以緩存原生服務(wù)器的靜態(tài)資源,比如樣式、圖片等。
常見的反向代理服務(wù)器比如大名鼎鼎的Nginx。


image.png
邊緣緩存

邊緣緩存中典型的商業(yè)化服務(wù)就是CDN了。
CDN的全稱是Content Delivery Network,即內(nèi)容分發(fā)網(wǎng)絡(luò)。
CDN通過部署在各地的邊緣服務(wù)器,使用戶就近獲取所需內(nèi)容,降低網(wǎng)絡(luò)擁塞,提高用戶訪問響應(yīng)速度和命中率。
CDN的關(guān)鍵技術(shù)主要有內(nèi)容存儲(chǔ)和分發(fā)技術(shù)。現(xiàn)在一般的公有云服務(wù)商都提供CDN服務(wù)。


image.png

服務(wù)端緩存

服務(wù)器端緩存是整個(gè)緩存體系的核心。包括數(shù)據(jù)庫級(jí)緩存、平臺(tái)級(jí)緩存和應(yīng)用級(jí)緩存。

數(shù)據(jù)庫級(jí)緩存

數(shù)據(jù)庫是用來存儲(chǔ)和管理數(shù)據(jù)的。
MySQL在Server層使用查詢緩存機(jī)制。將查詢后的數(shù)據(jù)緩存起來。
K-V結(jié)構(gòu),Key:select語句的hash值,Value:查詢結(jié)果
InnoDB存儲(chǔ)引擎中的buffer-pool用于緩存InnoDB索引及數(shù)據(jù)塊。

平臺(tái)級(jí)緩存

平臺(tái)級(jí)緩存指的是帶有緩存特性的應(yīng)用框架。
比如:GuavaCache 、EhCache(二級(jí)緩存,硬盤)、OSCache(頁面緩存)等。
部署在應(yīng)用服務(wù)器上,也稱為服務(wù)器本地緩存。

應(yīng)用級(jí)緩存(重點(diǎn))

具有緩存功能的中間件:Redis、Memcached、EVCache(AWS)、Tair(阿里 、美團(tuán))等。
采用K-V形式存儲(chǔ)。
利用集群支持高可用、高性能、高并發(fā)、高擴(kuò)展。
分布式緩存

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 緩存無處不在,有瀏覽器端的緩存,有服務(wù)器端的緩存,有代理服務(wù)器的緩存(代理服務(wù)器緩存、CDN 緩存),有ASP.N...
    mysimplebook閱讀 1,202評(píng)論 0 0
  • 1.數(shù)據(jù)庫數(shù)據(jù)緩存 Web應(yīng)用,特別是社交網(wǎng)絡(luò)服務(wù)類型的應(yīng)用,往往關(guān)系比較復(fù)雜,數(shù)據(jù)庫表繁多,如果頻繁進(jìn)行數(shù)據(jù)庫查...
    周霖_閱讀 1,355評(píng)論 0 0
  • BS 架構(gòu) 頁面緩存; 瀏覽器緩存; 移動(dòng)互聯(lián)網(wǎng)架構(gòu) APP 自身使用的緩存; 頁面緩存 含義 頁面自身對(duì)某些元素...
    烏魯木齊001號(hào)程序員閱讀 282評(píng)論 0 1
  • 服務(wù)端緩存的種類 數(shù)據(jù)庫緩存; 平臺(tái)級(jí)緩存; 應(yīng)用級(jí)緩存; 數(shù)據(jù)庫緩存 數(shù)據(jù)庫緩存是一種比較特殊的緩存,是數(shù)據(jù)庫自...
    烏魯木齊001號(hào)程序員閱讀 256評(píng)論 0 1
  • 1.1緩存的場(chǎng)景 定義: 緩存:最通用的解釋就是可以進(jìn)行高速數(shù)據(jù)交換的存儲(chǔ)器。 緩存的分類 硬盤緩存(機(jī)械硬盤) ...
    學(xué)海一烏鴉閱讀 431評(píng)論 0 0

友情鏈接更多精彩內(nèi)容