您现在的位置:首页 >> Android开发 >> 内容

php开发安卓服务器之 使用创建动态缓存

时间:2014-12-16 14:41:38 点击:

  核心提示:为什么要有缓存:减少数据库服务器压力。一.静态缓存:保存在服务器磁盘的静态文件,用php生成数据放在静态文件中php操作缓存:1.生成缓存2.获取缓存3.删除缓存生成缓存文件:file.php操作静态...
为什么要有缓存:减少数据库服务器压力。
一.静态缓存:
保存在服务器磁盘的静态文件,用php生成数据放在静态文件中
php操作缓存:
1.生成缓存
2.获取缓存

3.删除缓存

 

生成缓存文件:

 

file.php操作静态缓存的类

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<!--?php
 
class File {//操作静态缓存的业务
    private $_dir;
 
    const EXT = &#39;.txt&#39;;
 
    public function __construct() {
        //获取文件当前目录,把缓存文件放到当前目录files下
        $this--->_dir = dirname(__FILE__) . '/files/';
    }
    //key是缓存文件文件名,value是缓存数据
    public function cacheData($key, $value = '', $path='') {
        $filename = $this->_dir . $path . $key . self::EXT;
 
        if($value !== '') { // 将value值写入缓存
              
             //获取目录,判断如果目录不存在,创建目录
            $dir = dirname($filename);
            if(!is_dir($dir)) {
                mkdir($dir, 0777);//生成目录,给出权限
            }
            //第一个参数文件名,第二个数据(String),把数组vlaue转换成字符串
            return file_put_contents($filename,json_encode($value));
        }
         
    }
}

testfile.php

 

?
1
2
3
4
5
6
7
8
9
10
11
12
<!--?php
require_once(&#39;./file.php&#39;);
$data=array(
&#39;id&#39;=-->1,
'name'=>'david',
'type'=>array(4,5,6)
);
$file=new File();
if($file->cacheData('davidcache',$data)){
echo "success";}else{
echo "error";
}

如果生成成功显示success

这样就在当前文件的目录的file目录下创建了名为davidchche.txt的缓存文件。

 

 

进阶版:同时也实现缓存的读和删除

 

file.php

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<!--?php
 
class File {//操作静态缓存的业务
    private $_dir;
    const EXT = &#39;.txt&#39;;
    public function __construct() {
        //获取文件当前目录,把缓存文件放到当前目录files下
        $this--->_dir = dirname(__FILE__) . '/files/';
    }
    //key是缓存文件文件名,value是缓存数据
    public function cacheData($key, $value = '', $path='') {
        $filename = $this->_dir . $path . $key . self::EXT;
 
        if($value !== '') { // 将value值写入缓存
              
             if(is_null($value)) {//如果value值穿null则删除这个缓存文件
                return @unlink($filename);
            }
             //获取目录,判断如果目录不存在,创建目录
            $dir = dirname($filename);
            if(!is_dir($dir)) {
                mkdir($dir, 0777);//生成目录,给出权限
            }
            //第一个参数文件名,第二个数据(String),把数组vlaue转换成字符串
            return file_put_contents($filename,json_encode($value));
        }
 
        if(!is_file($filename))//读取缓存文件
        {
            return FALSE;
        }else{
            return json_decode(file_get_contents($filename),true);
        }
         
    }
}

根据file类,如果value为空='',读取缓存数据,
如果value为null,删除缓存数据,
如果value不为空,也不是null,那么创建缓存数据

testfile.php

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<!--?php
require_once(&#39;./file.php&#39;);
$data=array(
&#39;id&#39;=-->1,
'name'=>'david',
'type'=>array(4,5,6)
);
$file=new File();
//删除缓存文件
if($file->cacheData('davidcache',null)){
    //if($file->cacheData('davidcache')){
    //var_dump($file->cacheData('davidcache'));
    //exit;
echo "success";}else{
echo "error";
}
    /*下面这个是读取缓存时使用的
    if($file->cacheData('davidcache')){
    var_dump($file->cacheData('davidcache'));
    exit;
echo "success";}else{
echo "error";
}*/
 
/*下面这个是创建缓存调用的
if($file->cacheData('davidcache',$data)){
echo "success";}else{
echo "error";
}*/
 
//根据file类,如果value为空='',读取缓存数据,
//如果value为null,删除缓存数据,
//如果value不为空,也不是null,那么创建缓存数据

作者:不详 来源:网络
共有评论 0相关评论
发表我的评论
  • 大名:
  • 内容:
  • 青春网络编程技术(www.qcfupo.com) © 2020 版权所有 All Rights Reserved.
  • Powered by qcfupo! V3.0sp1
  • 百度友情链接: 百家乐[www.chinawestnews.net/aomenbaijiale/] 赌博网[www.chinawestnews.net/amdbwz/] 海立方[www.bjl.gov.cn/bjgylc/] 娱乐城[www.gtxrmzf.gov.cn/mapai/] 娱乐城[www.hfsf.gov.cn/yfgj/] 威尼斯人[www.hllinkou.gov.cn/baijile/] 澳门威尼斯[www.jjwgj.gov.cn/wnsr/] 888真人[www.lagm.gov.cn/888zhenren/] 百乐坊[www.laoling.gov.cn/blfylc/] 现金网[www.longyu.gov.cn/xjw/] 百家乐[www.chinawestnews.net/ambjl/] 新葡京娱乐场[www.sjzedu.gov.cn/jsylc/] 时时彩[www.snjw.gov.cn/ssc/] 赌博[www.chinawestnews.net/aomendubo/]