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 = new Redis();
$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 * from user_online_adve");
if($list){
foreach ($list as $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);
// insert to sql;
$mysql_obj->query("update user_online_adve set adve_num=adve_num+$num where id=$id");
$redis->set($adve_plus,1);
}
}
}
header(HTTP/1.0 301 Moved Permanently);
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 ($list as $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程序设计有所帮助 。 |