Heim  >  Artikel  >  Backend-Entwicklung  >  php的cms的各种缓存的比较,该如何处理

php的cms的各种缓存的比较,该如何处理

WBOY
WBOYOriginal
2016-06-13 13:45:45775Durchsuche

php的cms的各种缓存的比较
php的常用的几种缓存有哪些?
相关的优劣与否?
求教了!

------解决方案--------------------
PHP几种常见的缓存技术
------解决方案--------------------
看请求链

客户-->客户端缓存---》代理 (缓存服务器) --->|静态文件
|-动态php -->opcode缓存(apc之类) -->文件缓存--->memcache缓存(或内存缓存) -->数据库缓存
------解决方案--------------------
数据缓存:
这里所说的数据缓存是指数据库查询PHP缓存机制,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如果不存在,就连接数据库,得到数据,并把查询结果序列化后保存到文件中,以后同样的查询结果就直接从缓存表或文件中获得。

页面缓存:
每次访问页面的时候,都会先检测相应的缓存页面文件是否存在,如果不存在,就连接数据库,得到数据,显示页面并同时生成缓存页面文件,这样下次访问的时候页面文件就发挥作用了。(模板引擎和网上常见的一些PHP缓存机制类通常有此功能)

时间触发缓存:
检查文件是否存在并且时间戳小于设置的过期时间,如果文件修改的时间戳比当前时间戳减去过期时间戳大,那么就用缓存,否则更新缓存。

内容触发缓存:
当插入数据或更新数据时,强制更新PHP缓存机制。

静态缓存:
这里所说的静态缓存是指静态化,直接生成HTML或XML等文本文件,有更新的时候重生成一次,适合于不太变化的页面,这就不说了。
以上内容是代码级的解决方案,我直接CP别的框架,也懒得改,内容都差不多,很容易就做到,而且会几种方式一起用,但下面的内容是服务器端的缓存方案,非代码级的,要有多方的合作才能做到

内存缓存:
Memcached是高性能的,分布式的内存对象PHP缓存机制系统,用于在动态应用中减少数据库负载,提升访问速度。

php的缓冲器:
有eaccelerator, apc, phpa,xcache,这个这个就不说了吧,搜索一堆一堆的,自己看啦,知道有这玩意就OK

MYSQL缓存:
这也算非代码级的,经典的数据库就是用的这种方式,看下面的运行时间,0.09xxx之类的
我贴段根据蓝色那家伙修改后部分my.ini吧,2G的MYISAM表可以在0.05S左右,据说他前后改了有快一年
------解决方案--------------------
题目好大...

其实在php(其它语言都一样)应用的几乎每一个运行环节,都可以加入缓存,

用不用缓存取决于开发成本和缓存本身代价.....

缓存这东西,几乎就是软件开发中除了算法外,唯一能提高效率的东东

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn