客戶端緩存
傳統(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。

邊緣緩存
邊緣緩存中典型的商業(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ù)。

服務(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ò)展。
分布式緩存