常见缓存的分类

1. 客户端缓存

传统互联网:页面缓存和浏览器缓存
移动互联网:APP缓存

1.1 页面缓存

页面缓存:页面自身对某些元素或全部元素进行存储,并保存成文件。
html5CookieWebStorageSessionStorageLocalStorage)、WebSqlindexDBApplication Cache

开启步骤:

  1. 设置 manifest 描述文件
CACHE MANIFEST 
#comment

js/index.js
img/bg.png
  1. html 关联 manifest 属性
<html lang="en" manifest="demo.appcache">

使用 LocalStorage 进行本地的数据存储,示例代码:

localStorage.setItem("Name","张飞")
localStorage.getItem("Name")
localStorage.removeItem("Name")
localStorage.clear()

1.2 浏览器缓存

当客户端向服务器请求资源时,会先抵达浏览器缓存,如果浏览器有“要请求资源”的副本,就可以直接从浏览器缓存中提取而不是从原始服务器中提取这个资源。

浏览器缓存可分为强制缓存和协商缓存。

  • 强制缓存:直接使用浏览器的缓存数据
    条件:Cache-Controlmax-age 没有过期或者 Expires 的缓存时间没有过期
<meta http-equiv="Cache-Control" content="max-age=7200" />
<meta http-equiv="Expires" content="Mon, 20 Aug 2010 23:00:00 GMT" />
  • 协商缓存:服务器资源未修改,使用浏览器的缓存(304);反之,使用服务器资源(200)。
<meta http-equiv="cache-control" content="no-cache">

1.3 APP缓存

原生 APP 中把数据缓存在内存、文件或本地数据库(SQLite)中。比如图片文件。

2. 网络端缓存

通过代理的方式响应客户端请求,对重复的请求返回缓存中的数据资源。

2.1 Web 代理缓存

可以缓存原生服务器的静态资源,比如样式、图片等。

常见的反向代理服务器比如大名鼎鼎的 Nginx

2.2 边缘缓存

边缘缓存中典型的商业化服务就是 CDN 了。

CDN 的全称是 Content Delivery Network,即内容分发网络。

CDN通过部署在各地的边缘服务器,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。

CDN 的关键技术主要有内容存储和分发技术。现在一般的公有云服务商都提供 CDN 服务。

3. 服务端缓存

服务器端缓存是整个缓存体系的核心。包括数据库级缓存、平台级缓存和应用级缓存。

3.1 数据库级缓存

数据库是用来存储和管理数据的。
MySQLServer 层使用查询缓存机制。将查询后的数据缓存起来。

K-V 结构,Keyselect 语句的 hash 值,Value:查询结果

InnoDB 存储引擎中的 buffer-pool 用于缓存 InnoDB 索引及数据块。

3.2 平台级缓存

平台级缓存指的是带有缓存特性的应用框架。

比如:GuavaCacheEhCache(二级缓存,硬盘)、OSCache(页面缓存)等,部署在应用服务器上,也称为服务器本地缓存。

3.3 应用级缓存

具有缓存功能的中间件:RedisMemcachedEVCache(AWS)、Tair(阿里 、美团)等。

采用 K-V 形式存储;利用集群支持高可用、高性能、高并发、高扩展。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小松の博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值