PHP使用redis实现统计缓存mysql压力的方法


Posted in PHP onNovember 14, 2015

本文实例讲述了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程序设计有所帮助。

PHP 相关文章推荐
如何在PHP中使用Oracle数据库(6)
Oct 09 PHP
PHP文件下载类
Dec 06 PHP
PHP 错误之引号中使用变量
May 04 PHP
php面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
Sep 30 PHP
Admin generator, filters and I18n
Oct 06 PHP
php全角字符转换为半角函数
Feb 07 PHP
smarty模板中使用get、post、request、cookies、session变量的方法
Apr 24 PHP
浅析ThinkPHP中execute和query方法的区别
Jun 13 PHP
PHP转盘抽奖接口实例
Feb 09 PHP
PHP获取网站中各文章的第一张图片的代码示例
May 20 PHP
php封装的smartyBC类完整实例
Oct 19 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
Nov 17 PHP
PHP+redis实现添加处理投票的方法
Nov 14 #PHP
PHP实现操作redis的封装类完整实例
Nov 14 #PHP
php实现的递归提成方案实例
Nov 14 #PHP
PHP使用Pthread实现的多线程操作实例
Nov 14 #PHP
开启PHP Static 关键字之旅模式
Nov 13 #PHP
php正则表达式学习笔记
Nov 13 #PHP
php邮箱地址正则表达式验证
Nov 13 #PHP
You might like
PHP sprintf()函数用例解析
2011/05/18 PHP
php array_merge_recursive 数组合并
2016/10/26 PHP
静态html文件执行php语句的方法(推荐)
2016/11/21 PHP
PHP绕过open_basedir限制操作文件的方法
2018/06/10 PHP
Laravel统一错误处理为JSON的方法介绍
2020/10/18 PHP
关于JavaScript对象的动态选择及遍历对象
2014/03/10 Javascript
js实现股票实时刷新数据案例
2017/05/14 Javascript
JS使用正则表达式验证身份证号码
2017/06/23 Javascript
jQuery扩展_动力节点Java学院整理
2017/07/05 jQuery
Popup弹出框添加数据实现方法
2017/10/27 Javascript
JavaScript实现的DOM树遍历方法详解【二叉DOM树、多叉DOM树】
2018/05/07 Javascript
浅谈vue项目4rs vue-router上线后history模式遇到的坑
2018/09/27 Javascript
浅谈针对Vue相同路由不同参数的刷新问题
2018/09/29 Javascript
Nodejs监听日志文件的变化的过程解析
2019/08/04 NodeJs
Bootstrap table 实现树形表格联动选中联动取消功能
2019/09/30 Javascript
在Python的Django框架中用流响应生成CSV文件的教程
2015/05/02 Python
Python实现小数转化为百分数的格式化输出方法示例
2017/09/20 Python
python3正则提取字符串里的中文实例
2019/01/31 Python
详解利用OpenCV提取图像中的矩形区域(PPT屏幕等)
2019/07/01 Python
python使用pandas处理excel文件转为csv文件的方法示例
2019/07/18 Python
python 根据字典的键值进行排序的方法
2019/07/24 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
2019/08/04 Python
Python替换NumPy数组中大于某个值的所有元素实例
2020/06/08 Python
一款纯css3实现的竖形二级导航的实例教程
2014/12/11 HTML / CSS
荷兰在线啤酒店:Beerwulf
2019/08/26 全球购物
Shell如何接收变量输入
2016/08/06 面试题
企业年会主持词
2014/03/27 职场文书
反腐倡廉演讲稿
2014/05/22 职场文书
社区青年志愿者活动总结
2015/05/06 职场文书
土木工程毕业答辩开场白
2015/05/29 职场文书
后天观后感
2015/06/08 职场文书
《领导干部从政道德启示录》学习心得体会
2016/01/20 职场文书
诗词赏析-(浣溪沙)
2019/08/13 职场文书
李清照的诗词赏析(20首)
2019/08/22 职场文书
pytorch 如何使用amp进行混合精度训练
2021/05/24 Python
Python读取和写入Excel数据
2022/04/20 Python