php使用缓存
这要根据你的实际情况来定,有文件缓存,数据库缓存,还有memcache缓存。。。。。
B. php文件缓存类汇总
本文实例讲述了php的文件缓存类。分享给大家供大家参考。具体分析如下:
缓存类是我们开发应用中会常用使用到的功能,下面就来给大家整理几个php文件缓存类了,各个文件缓存类写法不同,但在性能上会有区别,有兴趣测试的朋友可测试一下这些缓存类。
例1
复制代码
代码如下:<?php
$fzz
=
new
fzz_cache;
$fzz->kk
=
$_SERVER;
//写入缓存
//$fzz->set("kk",$_SERVER,10000);
//此方法不与类属性想冲突,可以用任意缓存名;
print_r($fzz->kk);
//读取缓存
//print_r($fzz->get("kk"));
//unset($fzz->kk);
//删除缓存
//$fzz->_unset("kk");
var_mp(isset($fzz->kk));
//判断缓存是否存在
//$fzz->_isset("kk");
//$fzz->clear();
//清理过期缓存
//$fzz->clear_all();
//清理所有缓存文件
class
fzz_cache{
public
$limit_time
=
20000;
//缓存过期时间
public
$cache_dir
=
"data";
//缓存文件保存目录
//写入缓存
function
__set($key
,
$val){
$this->_set($key
,$val);
}
//第三个参数为过期时间
function
_set($key
,$val,$limit_time=null){
$limit_time
=
$limit_time
?
$limit_time
:
$this->limit_time;
$file
=
$this->cache_dir."/".$key.".cache";
$val
=
serialize($val);
@file_put_contents($file,$val)
or
$this->error(__line__,"fail
to
write
in
file");
@chmod($file,0777);
@touch($file,time()+$limit_time)
or
$this->error(__line__,"fail
to
change
time");
}
//读取缓存
function
__get($key){
return
$this->_get($key);
}
function
_get($key){
$file
=
$this->cache_dir."/".$key.".cache";
if
(@filemtime($file)>=time()){
return
unserialize(file_get_contents($file));
}else{
@unlink($file)
or
$this->error(__line__,"fail
to
unlink");
return
false;
}
}
//删除缓存文件
function
__unset($key){
return
$this->_unset($key);
}
function
_unset($key){
if
(@unlink($this->cache_dir."/".$key.".cache")){
return
true;
}else{
return
false;
}
}
//检查缓存是否存在,过期则认为不存在
function
__isset($key){
return
$this->_isset($key);
}
function
_isset($key){
$file
=
$this->cache_dir."/".$key.".cache";
if
(@filemtime($file)>=time()){
return
true;
}else{
@unlink($file)
;
return
false;
}
}
//清除过期缓存文件
function
clear(){
$files
=
scandir($this->cache_dir);
foreach
($files
as
$val){
if
(filemtime($this->cache_dir."/".$val)<time()){
@unlink($this->cache_dir."/".$val);
}
}
}
//清除所有缓存文件
function
clear_all(){
$files
=
scandir($this->cache_dir);
foreach
($files
as
$val){
@unlink($this->cache_dir."/".$val);
}
}
function
error($msg,$debug
=
false)
{
$err
=
new
Exception($msg);
$str
=
"<pre>
<span
style='color:red'>error:</span>
".print_r($err->getTrace(),1)."
</pre>";
if($debug
==
true)
{
file_put_contents(date('Y-m-d
H_i_s').".log",$str);
return
$str;
}else{
die($str);
}
}
}
?>