加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_宿迁站长网 (https://www.0527zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php缓存技术总结

发布时间:2022-09-20 12:59:54 所属栏目:PHP教程 来源:
导读:  Php缓存技术总结

  1.数据的文件缓存:

  这种方式是把数据库查询出来的数据做为缓存的内容,假如查询出来的数据是一个数组php读取缓存详细教程,我们可以将这个数组系列化之后再保存在一个PHP文件

  Php缓存技术总结
 
  1.数据的文件缓存:
 
  这种方式是把数据库查询出来的数据做为缓存的内容,假如查询出来的数据是一个数组php读取缓存详细教程,我们可以将这个数组系列化之后再保存在一个PHP文件中,当要读取内容的时候就可以反系列化从而得到一个查询结果的数组。避免了对数据库进行反复的查询。(注:读取文件的速度比查询数据库快,但是要避免文件太多,从而对硬盘的IO操作太多,从而影响速度,所以缓存文件也要合里规划。)
 
  2.内存缓存:
 
  内在缓存应该也是数据缓存的一种,是将数据库查询出来的数据缓存在内存中,共享内存块中。这种方式可以通过扩展软件来实现,现在主流的主要是memcache
 
  3.页面静态化:
 
  页面生成静态化就是生成静态的html,这样程序下次访问的时候直接请求这个html文件,避免了PHP的重新编译和数据库的查询。
 
  Smarty 模版缓存。
 
  4.动态内容缓存
 
  动态缓存技术之CSI,SSI,ESI
 
  动态内容缓存技术,总体来说就是该静态化的静态化,该动态的保持动态,最后进行组合!
 
  可行的方案大致有三种:CSI , SSI ,ESI
 
  一、CSI (Client Side Includes)
 
  含义:通过iframe、javascript、ajax 等方式将另外一个页面的内容动态包含进来。
 
  原理:整个页面依然可以静态化为html页面,不过在需要动态的地方则通过iframe,javascript或ajax来动态加载!
 
  例子:
 
  优点:相对比较简单,不需要服务器端做改变和配置;
 
  缺点:不利于搜索引擎优化(iframe方式), javascript兼容性问题,以及客户端缓存问题可能导致更新后不能及时生效!对于客户体验也不够好!
 
  二、SSI(Server Side Includes)
 
  含义:通过注释行SSI命令加载不同模块,构建为html,实现整个网站的内容更新;
 
  原理:通过SSI调用各模块的对应文件,最后组装为html页面,需要服务器模块支持(具体配置本文不做详述)php读取缓存详细教程,比如:apache服务器需要开启mod_include 模块;
 
  例子:
 
  优点:不受具体语言限制,比较通用,只需要Web服务器或应用服务器支持即可,Ngnix、Apache、IIS等对此都有较好的支持。
 
  缺点:SSI只能在当前服务器上包含加载,不能够直接包含其他服务器上的文件,即不能跨域包含;
 
  三、ESI(Edge Side Includes)
 
  含义及原理:
 
  网上通用的解释如下:通过使用简单的标记语言来对那些可以加速和不能加速的网页中的内容片断进行描述,每个网页都被划分成不同的小部分分别赋予不同的缓存控制策略,使Cache服务器可以根据这些策略在将完整的网页发送给用户之前将不同的小部分动态地组合在一起。通过这种控制,可以有效地减少从服务器抓取整个页面的次数,而只用从原服务器中提取少量的不能缓存的片断,因此可以有效降低原服务器的负载,同时提高用户访问的响应时间。与SSI不同的是,ESI多在缓存服务器或代理服务器上执行!
 
  例子:
 
  这中间是可静态化html内容
 
  优点:可用于缓存整个页面或页面片段,比较适合用于缓存服务器上;
 
  缺点:目前支持ESI的软件还比较少,官方更新也略显缓慢,因此使用不是很广!
 
  结语,该文章仅仅是总结三个可用于动态内容缓存的方案,具体在项目中用不用,用哪个,那就需要具体情况具体分析了!
 
  (以上动态内容缓存的描述引用自,/read-htm-tid-146985.html)
 
  5.服务器缓存:
 
  Nginx服务器:基于反向代理
 
  Apache:可以开启基于反向代理的mod_proxy,也可以开启:mod_cache模块。开户mod_cache模块同进还要配合mod_disk_cache ,mod_mem_cache二者选一
 
  SQUID:一款反向代理服务软件,实现web的快速访问,缓存web 数据
 
  6.php模块缓存:
 
  Php有一个APC缓存扩展,windows下面为php_apc.dll,需要先加载这个模块,然后是在php.ini里面进行配置:
 
  [apc]
 
  extension=php_apc.dll
 
  apc.rfc1867 = on
 
  upload_max_filesize = 100M
 
  post_max_size = 100M
 
  apc.max_file_size = 200M
 
  upload_max_filesize = 1000M
 
  post_max_size = 1000M
 
  max_execution_time = 600 ; 每个PHP页面运行的最大时间值(秒),默认30秒
 
  max_input_time = 600 ; 每个PHP页面接收数据所需的最大时间,默认60
 
  memory_limit = 128M ; 每个PHP页面所吃掉的最大内存,默
 
  认8M
 
  7.mysql缓存:
 
  其实就是配置mysql:
 
  [client]
 
  ……
 
  default-character-set=gbk
 
  default-storage-engine=MYISAM
 
  max_connections=600
 
  max_connect_errors=500
 
  back_log=200
 
  interactive_timeout=7200
 
  query_cache_size=64M
 
  ……
 
  table_cache=512
 
  ……
 
  myisam_max_sort_file_size=100G
 
  myisam_max_extra_sort_file_size=100G
 
  myisam_sort_buffer_size=128M
 
  key_buffer_size=1024M
 
  read_buffer_size=512M
 
  ……
 
  thread_concurrency=8
 
  8.PHP缓冲器:
 
  apc,phpa,xcache,Opcode缓存
 
  9.缓存html内容
 
  把html内容缓存在php文件中,这里指的是php编译好后的内容。
 

(编辑:云计算网_宿迁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!