php缓存未实践先理论
使用缓存技术的理由?当然是提高网站的访问速度!
听到php缓存技术是什么时候?不记得了,呵呵,工作当中一直没注意这个。恼火~~
今天疯狂Google了一下,或多或少了解了一些东西,那就简单的归纳一下吧,各位看官别扔砖头!
缓存技术分为动态缓存技术和静态缓存技术,对于那些PV不是很大的中小型网站使用动态缓存技术估计也就差不多了,但对于PV很大的网站还得使用静态缓存技术。
缓存,那到底缓存些个啥呢?
一、缓存数据
adodb就是缓存的数据,当第一次执行某条数据库查询的时候,adodb会将本次查询获取的结果集进行缓存,下次再执行相同的sql语句时就不用再次对数据库进行操作了,挺好~!~
二、页面缓存
用了很久的smarty,一直没想过去研究smarty的缓存技术,今天看了,恩,它就是页面缓存。哈哈!~!~可惜,每次还得php解析一次的哦~~
阿弥陀佛~!~
那么缓存何时更新呢?什么情况下更新呢?
PHP缓存技术之时间触发缓存:
检查文件是否存在并且时间戳小于设置的过期时间,如果文件修改的时间戳比当前时间戳减去过期时间戳大,那么就用缓存,否则更新缓存。
设定时间内不去判断数据是否要更新,过了设定时间再更新缓存。以上只适合对时效性要求不高的情况下使用,否则请看下面。
PHP缓存技术之内容触发缓存:
当插入数据或更新数据时,强制更新缓存。
在这里我们可以看到,当有大量数据频繁需要更新时,最后都要涉及磁盘读写操作。怎么解决呢?我在日常项目中,通常并不缓存所有内容,而是缓存一部分不经常变的内容来解决。但在大负荷的情况下,最好要用共享内存做缓存系统。
上述方法每次请求仍然要经过PHP解析,在大负荷的情况下效率问题还是比效严重,在这种情况下,也许会用到静态缓存。
相关文档:
1、模板的由来
在没有模板技术之前,使用PHP开发程序,通常都是php代码和html混编在一起。比如说新闻列表,很可能就是一个newslist.php页面,结构如下:
<?
//从数据库中读取出要显示的新闻记录
?>
<html>
<head>……..
</head>
<body>
<?
While ($news ......
在PHP中有urlencode()、urldecode()、rawurlencode()、rawurldecode()这些函数来解决网页
URL编码解码问题。
在ASP的时候URL编码解码很是恼火,Server.urlencode不太好用,遇到utf-8编码的地址更是麻
烦。你要获取百度、Google点击到网站的网址链接中的关键字,要写上一堆自定义函数来得到urldecode的效果。
摘录一篇关 ......
可以使用的命令:
popen
fpassthru
shell_exec
exec
system
1.popen
resource popen
( string command, string mode )
打开一个指向进程的管道,该进程由派生给定的 command
命令执行而产生。
返回一个和 fopen()
所返回的相同的文件指针,只不过它是单向的(只能用于读或写)并且必须用 pclose()
来关闭 ......
安装完php 和 apache后,如果apache 不支持 php
1.apache中没有 php加载模块。
在httpd.conf中加入。
LoadModule php5_module "c:/php5/php5apache2_2.dll"
AddType application/x-httpd-php .php
如果 不能正常启动apache 可能是apache版 本的事。可以修改 LoadModule php5_module "c:/php5/php5apache2_2.dll"
&n ......