php学习(一)静态缓存及其原理

  第一次玩博客这玩意,以前没写过所以写的不好请多指教。

一个网站每天有几百万甚至上千次的点击量,但是每次查询的数据有时是相同的,若每次都调取数据库,会造成服务器压力过大。所以,可以将已经查询过并且短时间内不会更新的内容进行缓存,以便其他或同一用户再次访问时间,不用调取数据库;直接将缓存中的数据展示给用户。这样会减小服务器压力,使服务器能满足更多需求。

基本思路如下

(1)先是一个大的判断:缓存文件中是否有需要的数据内容或最后一次修改的时间距离现在小于,设定的间隔的有效时间;

(2)若不存在缓存文件或修改时间已经大于设定的有效时间,则需要在展示的同时重新在缓存文件中存入数据;

(3)存入数据。涉及到的函数:ob_start():开启内存缓存(说的那么神秘,就是缓存从这里开始);

                            $content= ob_get_contents():从内存缓存中获取页面代码(反正我是不明白啥意思,我只知道缓存的    内  容到这里结束);

                          $file=  fopen(param1,param2):param1:文件位置;param2:打开模式,可用“r+”可读可写;

                            fwrite($file,$content):$content:为写入文件中的内容;

                        fclose($file):后三个函数配合使用。

    也可以用file_put_contents(param1,param2):param1:为文件位置;param2:为内容;

下面是一个小的demo,供参考(echo 'ok'和echo 'no'为走哪一“路”的标志):

<?
$filename="cache.php";
$expire=20;
if(!file_exists($filename)||filemtime($filename)+$expire<time()){
	ob_start(); //开启内存缓存
	 echo 'hello,php';
	
	$content=ob_get_contents();//从内存缓存中获取页面代码
	//将内容添加到缓存文件中
	$file=fopen($filename,"r+");	
	fwrite($file,$content);
	fclose($file);
	//清掉内存缓存
    ob_flush();
	echo "no";
}else{
	include($filename);
	echo 'ok';
}


?>	



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值