• Linux
  • apache
  • centos
  • Git版本管理
  • Linux基本命令
  • linux配置与优化
  • Nginx
  • PHP
  • Redis
  • Supervisor
  • Swoole
  • windows
  • THINKPHP
  • 开发者手册
  • Chat GPT / Open Ai
  • PHP使用redis实现统计缓存mysql压力的方法

    全屏阅读
  • 基本信息
  • 作者:
  • 作者已发布:925篇文章
  • 发布时间:2021年03月10日 17:43:56
  • 所属分类:PHP+MySql
  • 阅读次数:1978次阅读
  • 标签:
  • 这篇文章主要介绍了PHP使用redis实现统计缓存mysql压力的方法,涉及PHP操作MySQL数据库及使用Redis统计的相关技巧

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

    顶一下
    (0)
    100%
    订阅 回复
    踩一下
    (0)
    100%
    » 郑重声明:本文由mpxq168发布,所有内容仅代表个人观点。版权归恒富网mpxq168共有,欢迎转载, 但未经作者同意必须保留此段声明,并给出文章连接,否则保留追究法律责任的权利! 如果本文侵犯了您的权益,请留言。
  • 【上一篇】
  • 【下一篇】
  • 目前有 0 条留言 其中:访客:0 条, 博主:0 条

    给我留言

    您必须 [ 登录 ] 才能发表留言!