缓存的分类
按照存储介质来分 :
内存(网站进程内、同服务器独立进程、独立服务器、分布式服务器组)。
磁盘(本地文件和数据库,独立服务器、分布式服务器组)。
缓存可以使用磁盘而不仅仅是内存。
按照存储的数据来分 :
直接用于输出的整页(HTML、脚本样式、图片)。
片段页(可供多个客户端使用的HTML、脚本样式等)。
索引和聚合数据(空间换时间)。
耗时查询的结果数据。
和业务相关的大块数据(列表数据,引用数据)。
和业务相关的小级数据(行级数据,资源数据)。
和上下文(用户)相关的数据(活动数据)。
按照实现方式来分 :
框架或引擎内置的缓存(比如ORM缓存和SQL SERVER缓存)。
安装特定的组件根据规则自动实现缓存(比如反向代理和输出缓存)。
需要由开发以编程方式实现的缓存(比如业务数据缓存)。
按照作用来分 :
用于数据的读取(之后介绍的大部分内容都是基于此类缓存)
用于(允许丢失)数据的写入——写到缓存的队列中,再由工作线程提交处理(写入存储)
网站架构中的缓存
浏览器缓存(HTTP缓存头)
代理缓存(Squid Vanish CDN)
Web服务器缓存(内核缓存、应用缓存)
页面输出缓存(片段缓存、整页缓存)
业务数据缓存(本地缓存,分布式缓存)
其它缓存(ORM、数据库、搜索引擎等缓存)