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);
*/

 

posted @ 2013-11-01 15:12  jackluo  阅读(9319)  评论(0编辑  收藏  举报