前言 以哔哩哔哩网站为例,分析。
1. 缓存及其作用
缓存能提升性能
-
绝大多数情况下,select 是出现性能问题最大的地方。一方面,select 会有很多像 join、group、order、like 等这样丰富的语义,而这些语义是非常耗性能的;另一方面,大多 数应用都是读多写少,所以加剧了慢查询的问题。
-
当用户请求增多时,数据库的压力将大大增加,通过缓存能够大大降低数据库的压力
缓存三种模式
Cache Aside 【同时更新缓存和数据库】
Read/Write Through 【先更新缓存,缓存负责同步更新数据库】
Write Behind Caching 【先更新缓存,缓存定时异步更新数据库】
主要介绍第一种
Cache Aside
失效:应用程序先从 cache 取数据,没有得到,则从数据库中取数据,成功后,放到缓存中。
命中:应用程序从 cache 中取数据,取到后返回。
更新:先把数据存到数据库中,成功后,再让缓存失效。
2. 案例分析
Cache-control:max-age=31536000
单位为秒,31536000为一年,表示有一年的有效期。
Access-Control-Allow-Origin:* *表示允许所有域名访问。访问来源管控较松。
Content-Type:text/css 内容类型为CSS
静态资源方案:缓存+CDN+文件名hash;
CDN