PHP 利用redis 做统计缓存mysql的压力

PHPABC PHP开发 1,286 次浏览 , , 没有评论

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

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

Go