zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

php+redis缓存类详解大数据

2023-06-13 09:20:25 时间
$this- lifetime = $lifetime; $this- data=$redis- hMGet($this- cacheid, array(content,creattime)); //print_r($this- redis); //print_r($this- data);
if (!$data[content]) return false; if (time() - $data[creattime] $this- lifetime) return false; return true; /** * 写入缓存 * $mode == 0 , 以浏览器缓存的方式取得页面内容 public function write($mode=0,$content=) { switch ($mode) { case 0: $content = ob_get_contents(); break; default: break; ob_end_flush(); try { $this- redis- hMset($this- cacheid, array(content= $content,creattime= time())); $this- redis- expireAt($this- cacheid, time() + $this- lifetime); catch (Exception $e) { $this- error(写入缓存失败!); /** * 加载缓存 * exit() 载入缓存后终止原页面程序的执行,缓存无效则运行原页面程序生成缓存 * ob_start() 开启浏览器缓存用于在页面结尾处取得页面内容 public function load() { if ($this- isvalid()) { echo $this- data[content]; exit(); else { ob_start(); /** * 清除缓存 public function clean() { try { $this- redis- hDel($this- cacheid, array(content,creattime)); catch (Exception $e) { $this- error(清除缓存失败!); /** * 取得缓存文件路径 private function getcacheid() { return $this- dir.md5($this- geturl()).$this- /** * 取得当前页面完整url private function geturl() { $url = ; if (isset($_SERVER[REQUEST_URI])) { $url = $_SERVER[REQUEST_URI]; else { $url = $_SERVER[Php_SELF]; $url .= empty($_SERVER[QUERY_STRING])?:?.$_SERVER[QUERY_STRING]; return $url; /** * 输出错误信息 private function error($str) { echo div .$str. /div
// $cache = new redisCache(10); //设置缓存生存期 // if ($_GET[clearCache]) $cache- clean(); // else $cache- load(); //装载缓存,缓存有效则不执行以下页面代码 // //页面代码开始 // //页面代码结束 // $cache- write(); //首次运行或缓存过期,生成缓存