帝国cms刷新页面太慢,用memcache缓存数据
2021-12-25 19:21:24 围观 : 次
原查询方式
<?php require('e/class/connect.php'); //引入数据库配置文件和公共函数文件 require('e/class/db_sql.php'); //引入数据库操作文件 $link=db_connect(); //连接MYSQL $empire=new mysqlquery(); //声明数据库操作类 $sql=$empire->query("select * from {$dbtbpre}ecms_news order by newstime limit 10"); //查询新闻表最新10条记录 while($r=$empire->fetch($sql)) //循环获取查询记录 { echo"标题:".$r['title']."<br>"; } db_close(); //关闭MYSQL链接 $empire=null; //注消操作类变量 ?> |
修改后
<?php require('e/class/connect.php'); //引入数据库配置文件和公共函数文件 require('e/class/db_sql.php'); //引入数据库操作文件 $link=db_connect(); //连接MYSQL $empire=new mysqlquery(); //声明数据库操作类 $memcache = new Memcache; //创建一个memcache对象 $memcache->connect('localhost', 11211) or die ("Could not connect"); //连接Memcached服务器 function fetch_memcache($sql,$time=3600){ global $empire,$memcache,$dbtbpre; $key = md5($sql); if(!($value =$memcache->get($key))){ //Cache中没有,则从MySQL中查询 $sql=$empire->query($sql); while($r=$empire->fetch($sql)){ $result[]= $r; } $value =$result; //将Key和Value写入MemCache $memcache->set($key,$result,0,time()+$time); } return $value; } $res=fetch_memcache("select * from {$dbtbpre}ecms_news order by newstime limit 10"); //查询新闻表最新10条记录 while(list($key,$r) = each($res)) //循环获取查询记录 { echo"标题:".$r['title']."<br>"; } db_close(); //关闭MYSQL链接 $empire=null; //注消操作类变量 ?> |