PHP常见缓存原理

 知识结构: 1.从架构看缓存 2.文件类缓存 3.内存数据库之Memcached 4.内存数据库之Redis 5.浏览器缓存机制 6.服务器程序的缓存

 1.1缓存的目的              

         压力均分,减少对瓶颈环节的流量冲击 

         简化处理流程,提升整个流程的处理速度

          持久化和固化数据

 1.2合理使用缓存

        缓存实时性变化要求不严格的内容(防止出现幻度)

        缓存经常访问但改动不频繁的内容

 1.3哪些位置适合做缓存

 

                                                                        网站架构图

               注:DiskCache服务器硬件缓存技术

2.1CDN缓存原理和介绍

  各地部署多套静态缓存服务,本质上是空间成本换时间

  自动选择最近的节点内容,不存在再请求原始服务器

  适合存储更新更少的静态内容,文件更新慢

2.2数据文件缓存方案

 将更新频率极低且读取几率高的数据缓存为文件

 获取时不再查询数据库而是直接读和解析文件内容

2.3全页面静态化

 常见于CMS,使用前后端分离的思路如Smarty把页面公用的区域做成模板,并且留下变量区域,后台修改内容时,把变量替换入模板,并且生成HTML,用户访问适合,直接显示HTML页面

 特点:有利于搜索引擎优化SEO,加快收录速度

          减轻服务器负担,减少数据库请求和运算量

          加快页面打开速度,便于进行CDN加速

          防止漏洞和入侵

          非常适合于文章类网站

所涉及的代码片段:

而面对商城类的网站呢,静态页面就有些不太实际,尤其面对有些客户而制定的各自对应的商品,这个时候就用到了从页面片段缓存到facebook的BigPipe技术,这个技术主要是前后端结合的技术,主要解决的就是页面,尤其是首页,当内容特别多,加载特别慢的时候改进的问题

       首先,网站的正规流程是:

      program data(php在执行的时候,把数据准备好之后)  =》 

      php buffer(暂存在php的缓存上) =》

      tcp buffer(等到php完全执行后,丢给tcp buffer,这个是存在于nginx或者apache里的,然后由他们进行缓存,他们会读取其对应的html还有一些其他的元素,当整个文件完全完毕之后发给客户端) =》

     client browers(客户端进行页面的渲染)

  BigPipe技术:就是当页面还没有准备完成的时候,把页面分成一个个小块,处理的话利用每个快一个个处理,没处理完一个就存在buffer里面去,然后通知buffer先把数据传到客户端(相当于一边做着蛋糕一边给客户),浏览器在一个请求中不断接受并渲染到页面,逐块显示(JS,不要立刻执行的部分,可以最后再eval进来),为了支持这个技术,服务器也需要改动下

  nginx配置: proxy_buffering off;       fastcgi_keep_conn on;

  php配置:关闭输出缓存   output_buffering=off;

  所用的PHP方法:

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值