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 HTML代码串截取代码
Dec 29 PHP
php中数组首字符过滤功能代码
Jul 31 PHP
PHP中将ip地址转成十进制数的两种实用方法
Aug 15 PHP
php遍历目录输出目录及其下的所有文件示例
Jan 27 PHP
PHP 只允许指定IP访问(允许*号通配符过滤IP)
Jul 08 PHP
ThinkPHP自动完成中使用函数与回调方法实例
Nov 29 PHP
Codeigniter通过SimpleXML将xml转换成对象的方法
Mar 19 PHP
YII Framework框架教程之国际化实现方法
Mar 14 PHP
thinkPHP简单遍历数组方法分析
May 16 PHP
Yii框架实现多数据库配置和操作的方法
May 25 PHP
laravel框架创建授权策略实例分析
Nov 22 PHP
PHP实现简易用户登录系统
Jul 10 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
探讨Hessian在PHP中的使用分析
2013/06/13 PHP
php截取指定2个字符之间字符串的方法
2015/04/15 PHP
php实现的日历程序
2015/06/18 PHP
利用PHP自动生成印有用户信息的名片
2016/08/01 PHP
ThinkPHP5.1的权限控制怎么写?分享一个AUTH权限控制
2021/03/09 PHP
javascript 不间断的图片滚动并可点击
2010/01/15 Javascript
jQuery 动画弹出窗体支持多种展现方式
2010/04/29 Javascript
js导出table数据到excel即导出为EXCEL文档的方法
2013/10/10 Javascript
javaScript如何处理从java后台返回的list
2014/04/24 Javascript
javascript对中文按照拼音排序代码
2014/08/20 Javascript
禁止iframe脚本弹出的窗口覆盖了父窗口的方法
2014/09/06 Javascript
最流行的Node.js精简型和全栈型开发框架介绍
2015/02/26 Javascript
AngularJs bootstrap搭载前台框架——js控制部分
2016/09/01 Javascript
javascript的函数劫持浅析
2016/09/26 Javascript
Vue.js实现拖放效果的实例
2016/09/30 Javascript
JavaScript中const、var和let区别浅析
2016/10/11 Javascript
BootStrap实现手机端轮播图左右滑动事件
2016/10/13 Javascript
JS排序之快速排序详解
2017/04/08 Javascript
几种响应式文字详解
2017/05/19 Javascript
nodejs密码加密中生成随机数的实例代码
2017/07/17 NodeJs
Vue开发环境中修改端口号的实现方法
2019/08/15 Javascript
jQuery 选择方法及$(this)用法实例分析
2020/05/19 jQuery
python实现的防DDoS脚本
2011/02/08 Python
Flask框架中密码的加盐哈希加密和验证功能的用法详解
2016/06/07 Python
jupyter notebook 中输出pyecharts图实例
2020/04/23 Python
Python高级编程之继承问题详解(super与mro)
2019/11/19 Python
Python解释器以及PyCharm的安装教程图文详解
2020/02/26 Python
CSS3实现王者荣耀匹配人员加载页面的方法
2019/04/16 HTML / CSS
海信商城:海信电视、科龙空调、容声冰箱官方专卖
2017/02/07 全球购物
SHEIN台湾:购买最新流行女装服饰
2019/05/18 全球购物
九州传奇上机题
2014/07/10 面试题
会计找工作求职信范文
2013/12/09 职场文书
主题教育活动总结
2014/05/05 职场文书
公司员工离职证明书
2014/10/04 职场文书
Flask搭建一个API服务器的步骤
2021/05/28 Python
css实现两栏布局,左侧固定宽,右侧自适应的多种方法
2021/08/07 HTML / CSS