您的位置:首页 > 数据库 > Memcache

2.16.9.21练习(memcache)

2016-09-21 11:45 127 查看
《互联网系项目优化日考试题》第二十一单元技能试题
 
题号

总分
批卷人
审核人
得分
 

 

 

 

 
 
 
 
 
 

考核目标:memcache

案例图示:

案例描述:

当搜索的关键词被搜索的次数超过10次后,搜索结果缓存到memcache中,缓存时间半个小时,下次再搜索该关键字时直接从memcache返回。搜索次数保存到memcache中。

注意:

1)     可以查资料

评分标准:(可以参考相关手册,不允许参考本机相关代码,否则视为0分。在本月项目基础上修改,否则视为0分)

1)  显示搜索结果,分页正常(30分)
2)  记录关键词的搜索次数(30分)
3)  缓存搜索结果(30分)
4)  缓存存在时从缓存中返回数据(10分)
 
注意:新建readme.txt,写上几点几分,实现了什么功能。

 <?php

$pdo=new PDO("mysql:host=127.0.0.1;dbname=lianxi906","root","root");

$pdo->exec("set names utf8");

$mem = new Memcache;

$mem->connect('127.0.0.1', 11211) or die ("Could not connect"); 

$page=isset($_GET["page"])?$_GET["page"]:1;

$search=isset($_REQUEST["search"])?$_REQUEST["search"]:"";

$num=$mem->get("s".$search);

if($num){
$num++;
if($num==5){
echo "5次啦";
$sql="select * from hao123 where title like '%$search%'";
$arr=$pdo->query($sql)->fetchAll(PDO::FETCH_ASSOC);
//总条数
$counts=count($arr);
$mem->set("show".$search,$arr,0,1800);
//每页条数
$length=5;
//总页数
$pages=ceil($counts/$length);
//上下页
$prev=$page<=1?1:$page-1;
$next=$page>=$pages?$pages:$page+1;
//偏移量
$offset=($page-1)*$length;
$sel="select * from hao123 where title like '%$search%' limit $offset,$length";
$list=$pdo->query($sel)->fetchAll(PDO::FETCH_ASSOC);

$mem->set("s".$search,$num);
}else if($num<5){
echo $num;
$sql="select * from hao123 where title like '%$search%'";
//总条数
$counts=count($pdo->query($sql)->fetchAll(PDO::FETCH_ASSOC));
//每页条数
$length=5;
//总页数
$pages=ceil($counts/$length);
//上下页
$prev=$page<=1?1:$page-1;
$next=$page>=$pages?$pages:$page+1;
//偏移量
$offset=($page-1)*$length;
$sel="select * from hao123 where title like '%$search%' limit $offset,$length";
$list=$pdo->query
9c43
($sel)->fetchAll(PDO::FETCH_ASSOC);
$mem->set("s".$search,$num);
}else if($num>5){
echo ">5了 这是缓存哦";
$arr=$mem->get("show".$search);
//每页条数
$length=5;
//总条数
$counts=count($arr);
//总页数
$pages=ceil($counts/$length);
//偏移量
$offset=($page-1)*$length;
//上下页
$prev=$page<=1?1:$page-1;
$next=$page>=$pages?$pages:$page+1;
$list=array_slice($arr, $offset, $length);
}

}else{
echo "第一次";
$sql="select * from hao123 where title like '%$search%'";
//总条数
$counts=count($pdo->query($sql)->fetchAll(PDO::FETCH_ASSOC));
//每页条数
$length=5;
//总页数
$pages=ceil($counts/$length);
//上下页
$prev=$page<=1?1:$page-1;
$next=$page>=$pages?$pages:$page+1;
//偏移量
$offset=($page-1)*$length;
$sel="select * from hao123 where title like '%$search%' limit $offset,$length";
$list=$pdo->query($sel)->fetchAll(PDO::FETCH_ASSOC);
if(!empty($list)){
$mem->set("s".$search,1);
}

}

?>

<form action="" method="post">
<input type="text" name="search" value="<?php echo $search ?>">
<input type="submit" value="搜索" class="serach">

</form>

<table>

<?php foreach($list as $k=>$v){ ?>
<tr>
<td><?php echo $v["id"]?></td>
<td><?php echo $v["title"]?></td>
<td><?php echo $v["url"]?></td>
</tr>

<?php } ?>

</table>

<a href="show.php?page=1&search=<?php echo $search ?>">首页</a>

<a href="show.php?page=<?php echo $prev ?>&search=<?php echo $search ?>">上一页</a>

<a href="show.php?page=<?php echo $next ?>&search=<?php echo $search ?>">下一页</a>

<a href="show.php?page=<?php echo $pages ?>&search=<?php echo $search ?>">尾页</a><br>

第<?php echo $page?>页/共<?php echo $pages ?>页

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: