LNMP和LAMP哪些位置适合做缓存
一.浏览器缓存
其机制是根据HTTP报文的缓存标识进行的。
- 过程:浏览器发起HTTP请求 – 服务器响应该请求。
- 那么浏览器第一次向服务器发起该请求后拿到请求结果,
- 会根据响应报文中HTTP头的缓存标识,决定是否缓存结果,
- 若是,则将请求结果和缓存标识存入浏览器缓存中。
- 缓存过程分为两个部分,分别是强制缓存和协商缓存。
二.DNS缓存
- 1.首先搜索浏览器自身的DNS缓存,如果存在,则域名解析到此完成。
- 2.如果浏览器自身的缓存里面没有找到对应的条目,那么会尝试读取操作系统的hosts文件看是否存在对应的映射关系,如果存在,则域名解析到此完成。
- 3.如果本地hosts文件不存在映射关系,则查找本地DNS服务器(ISP服务器,或者自己手动设置的DNS服务器),如果存在,域名到此解析完成。
- 4.如果本地DNS服务器还没找到的话,它就会向根服务器发出请求,进行递归查询。
三.CDN缓存
- 全称是Content Delivery([dɪˈlɪvəri] ) Network,即内容分发网络。
- 目的:是通过在现有的Internet中增加一层新的CACHE(缓存)层,
- 将网站的内容发布到最接近用户的网络”边缘“的节点,使用户可以就近取得所需的内容,
- 提高用户访问网站的响应速度。
- 缓存内容:业务内容图片,附件JS,CSS等静态元素
四.WebServer缓存
五.PHP缓存
BigPipe技术
-
背景: 商城首页加载
-
技术:从页面片段缓存到facebook的BigPipe( [paɪp] )技术,就是当页面还没有准备完成的时候,把页面分成一个个小块,处理的话利用每个快一个个处理,没处理完一个就存在buffer里面去,然后通知buffer先把数据传到客户端(相当于一边做着蛋糕一边给客户),浏览器在一个请求中不断接受并渲染到页面,逐块显示(JS,不要立刻执行的部分,可以最后再eval进来)
-
解决内容:这个技术主要是前后端结合的技术,主要解决的就是页面,尤其是首页,当内容特别多,加载特别慢的时候改进的问题
-
注意事项:为了支持这个技术,服务器也需要改动下nginx配置:( proxy_buffering off; fastcgi_keep_conn on)php配置:(关闭输出缓存 output_buffering=off;)
-
所用的PHP方法:
Opcache
六.内存数据库
集群方案
redis官方集群解决方案
redis配置集群
七.MySql查询缓存
、
redis各数据类型应用场景