认识缓存
由于一直接触基础服务,没有做过业务系统,希望结合之前的经验同时站在业务系统的视角,整理一下对缓存的理解。
web系统中,缓存可以提高页面加载速度,减少对服务器和存储系统的负载。缓存的本质是空间换时间。
这个系统中,分发器先查看请求结果是否在缓存系统中,如果在直接返回结果;不在就需要分配给一个服务器处理,然后将结果放到缓存系统中;
缓存在哪里
平时见过哪些缓存?
客户端缓存:缓存可以在客户端(浏览器)。
CDN缓存:CDN本质也是一种缓存。
web服务器缓存:反向代理提供静态和动态内容;web服务器可以缓存请求的响应内容,无须访问应用服务器。
数据库缓存:sql语句结果缓存,但是可控性较差,很多企业dba关闭该功能;另外也可配置缓存磁盘的分页数据,但是性能差,还是会执行sql,不缓存sql执行结果。
应用缓存:基于内存的memcached和redis是在应用服务和数据库之间的缓存服务。
单机本地缓存:服务读取本地文件,而不去访问远端服务器。guava库的缓存功能。
cpu