PHP使用redis实现统计缓存mysql压力的方法
本文实例讲述了PHP使用redis实现统计缓存mysql压力的方法。分享给大家供大家参考,具体如下:
<?php
header("Content-Type:text/html;charset=utf-8");
include'lib/mysql.class.php';
$mysql_obj=mysql::getConn();
//redis
$redis=newRedis();
$redis->pconnect('127.0.0.1',6379);
if(isset($_SERVER['HTTP_REFERER'])){
$url_md5=md5($_SERVER['HTTP_REFERER']);
}
$adve_key='adve';
$adve_key_exists='adve_exists';
if(!$redis->exists($adve_key_exists)){
$list=$mysql_obj->fetch_array("select*fromuser_online_adve");
if($list){
foreach($listas$key=>$value){
$url_hash=md5($value['adve_url']);
$adve_hash_key=$adve_key.":".$url_hash;
$id=$value['id'];
$redis->set($adve_hash_key,$id);
$redis->set($adve_key_exists,true);
//$redis->hmset($adve_hash_key,array('id'=>$id));
//print_r($redis->get($adve_hash_key));
}
}
}
$adve_new_key=$adve_key.':'.$url_md5;
if($redis->exists($adve_new_key)){
$adve_plus=$adve_new_key.":plus";
if(!$redis->exists($adve_plus)){
$redis->set($adve_plus,1);
}else{
$redis->incr($adve_plus);
$num=$redis->get($adve_plus);
if($num>10){
$id=$redis->get($adve_new_key);
//inserttosql;
$mysql_obj->query("updateuser_online_advesetadve_num=adve_num+$numwhereid=$id");
$redis->set($adve_plus,1);
}
}
}
header('HTTP/1.0301MovedPermanently');
header('Location:https://itunes.apple.com/cn/app/san-guo-zhi15-ba-wangno-da-lu/id694974270?mt=8');
/*
if(){
$adve_plus=$adve_key.":plus";
if($redis->exists($adve_plus)){
$redis->incr($adve_plus);
}else{
$redis->set($adve_plus,1);
}
echo$redis->get($adve_plus);
}
foreach($listas$key=>$value){
$url_hash=md5($value['adve_url']);
$id=$value['id'];
$adve_num=$value['adve_num'];
$adve_plus=$adve_key.":plus";
if($redis->exists($adve_plus)){
$redis->incr($adve_plus);
}else{
$redis->set($adve_plus,1);
}
echo$redis->get($adve_plus);
//if($redis->)
//$redis->hmset($adve_key,array('id'=>$id,'adve_num'=>$adve_num));
//print_r($redis->hmget("adve:$url_hash",array('adve_num')));
}
print_r($list);
*/
希望本文所述对大家php程序设计有所帮助。