首页 >php教程 >php手册 >php开发安卓服务器之 使用创建动态缓存

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

WBOY
WBOY原创
2016-06-13 09:18:411020浏览

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

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

3.删除缓存


生成缓存文件:


file.php操作静态缓存的类

<?php

class File {//操作静态缓存的业务
	private $_dir;

	const EXT = &#39;.txt&#39;;

	public function __construct() {
		//获取文件当前目录,把缓存文件放到当前目录files下
		$this->_dir = dirname(__FILE__) . &#39;/files/&#39;;
	}
	//key是缓存文件文件名,value是缓存数据
	public function cacheData($key, $value = &#39;&#39;, $path=&#39;&#39;) {
		$filename = $this->_dir . $path . $key . self::EXT;

		if($value !== &#39;&#39;) { // 将value值写入缓存
			 
			 //获取目录,判断如果目录不存在,创建目录
			$dir = dirname($filename);
			if(!is_dir($dir)) {
				mkdir($dir, 0777);//生成目录,给出权限
			}
			//第一个参数文件名,第二个数据(String),把数组vlaue转换成字符串
			return file_put_contents($filename,json_encode($value));
		}
		
	}
}

testfile.php


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

如果生成成功显示success

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



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


file.php

<?php

class File {//操作静态缓存的业务
	private $_dir;
	const EXT = &#39;.txt&#39;;
	public function __construct() {
		//获取文件当前目录,把缓存文件放到当前目录files下
		$this->_dir = dirname(__FILE__) . &#39;/files/&#39;;
	}
	//key是缓存文件文件名,value是缓存数据
	public function cacheData($key, $value = &#39;&#39;, $path=&#39;&#39;) {
		$filename = $this->_dir . $path . $key . self::EXT;

		if($value !== &#39;&#39;) { // 将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


<?php
require_once(&#39;./file.php&#39;);
$data=array(
&#39;id&#39;=>1,
&#39;name&#39;=>&#39;david&#39;,
&#39;type&#39;=>array(4,5,6)
);
$file=new File();
//删除缓存文件
if($file->cacheData(&#39;davidcache&#39;,null)){
	//if($file->cacheData(&#39;davidcache&#39;)){
	//var_dump($file->cacheData(&#39;davidcache&#39;));
	//exit;
echo "success";}else{
echo "error";
}
    /*下面这个是读取缓存时使用的
	if($file->cacheData(&#39;davidcache&#39;)){
	var_dump($file->cacheData(&#39;davidcache&#39;));
	exit;
echo "success";}else{
echo "error";
}*/

/*下面这个是创建缓存调用的
if($file->cacheData(&#39;davidcache&#39;,$data)){
echo "success";}else{
echo "error";
}*/

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


声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn