MYSQL查询数据本地缓存

帅气的开发者2020-03-26 12:42:5011阅读
如何提升网站的访问速度?
这个问题不简单,速度的优化像是一个无底洞,从服务器端到前端,可以说每一个环节都有优化的空间。
提升访问速度,不得不说缓存,从客户端(浏览器)缓存、WEB服务器的缓存,PHP的缓存,MYSQL的缓存。

每一种缓存都各有有优缺点,这个需要看项目需要。用PHP做MYSQL的数据缓存,在PHP这个环节上做缓存我觉得是个不错的选择,数据调用起来更灵活,特别在一些用户交互比较多的项目。


MYSQL查询数据本地缓存

上代码
//缓存  n:函数 a:参数 d:数据
	private static function cache($n,$a,&$d = false){
		$expire = 300; //缓存周期
		$file = __DIR__ .'./cache/'.$n.'/'.hash('sha256',json_encode($a)).'.tmp';
		if ($d != false){  //判断数据参数是否有传参
			//写入缓存  空值参数为删除缓存
			if (!empty($d)){
				$data = array();
				if(is_array($d)){ //这个地方必须遍历mysql结果集为数组做存储
					$data = $d; //已经是数组的直接赋值
				}else{
					foreach ($d as $v){
						$data[] = $v;
					}
				}
				return file_put_contents($file,json_encode($data)); //存储
			}
			if (is_file($file)){ //空值删除掉缓存
				unlink($cache_file);
				return true;
			}
			return false;
		}
		//读取缓存 判断文件是否存在 和 文件创建时间是否过期
		if (is_file($file)){
			if ((filemtime($file)) > (time()-$expire)){
				return json_decode( file_get_contents($file) ,true);
			}else{
				unlink($cache_file);
			}
		}
		return false;
	}
提供一个思路,具体根据你的项目来
PHP打印
举报&反馈

写评