计算架构模式之多级缓存架构
概念介绍
缓存
定义
Cache。指位于速度相差较大的两种硬件之间,用于协调两者数据传输速度差异的结构,均可称为缓存。
本质
空间换时间
举例
- CPU L1、L2、L3缓存
- Linux文件系统page cache
- innodb buffer pool
- redis、memcached
缓冲
定义
Buffer。指某个临时存储区域,保存将要从一个设备(或者系统)传输到另一个设备(或者系统)的数据。
举例
- Java IO BufferdInputStream等
- 磁盘控制器写缓存(Write cache)
- MySQL log buffer
- 消息队列缓冲写请求
- innodb buffer pool
缓存设计
3W1H
更新机制
多级缓存架构
5级缓存架构
4级缓存架构
3级缓存架构
缓存技术
本地缓存
APP缓存
定义
App将数据缓存在本地
应用场景
所有能缓存的都可以缓存
常见技术
- SQLite缓存
- 本地文件缓存
- 图片缓存Picasso(Square)、Fresco(Facebook)、Glide(Google)
HTTP缓存
定义
HTTP标准协议缓存
应用场景
HTTP资源
常见技术
- 参考HTTP协议、Cache-Control、Etag/If-None-Match等指令
CDN缓存
定义
Content Delivery NetWork ,即内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需的内容,降低网络拥塞,提高用户访问响应速度和命中率,关键技术是内容存储和分发技术
优缺点
- 功能强大,能够支撑超高流量
- 贵
应用场景
- 直播(RTMP、HLS)
- 视频
- 资讯
国内供应商
阿里云、网宿、腾讯云、金山云、七牛云……
Web容器缓存
Web容器一般缓存静态资源,例如图片、Javascript、CSS等,配合HTTP协议实现缓存
应用缓存
定义
应用在本地缓存数据
应用场景
所有能缓存的都可以缓存
常见技术
- 进程内缓存、HashMap、OSCache、Ehcache等
- 进程外缓存,堆外内存
- 本地磁盘SSD缓存
分布式缓存
定义
由分布式系统提供缓存功能
应用场景
所有能缓存的都可以缓存
具体实现
- Redis
- Memcached