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 相关文章推荐
PHP4之COOKIE支持详解
Oct 09 PHP
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
Aug 03 PHP
php图像处理函数大全(推荐收藏)
Jul 11 PHP
微信自定义菜单的处理开发示例
Apr 16 PHP
php删除文本文件中重复行的方法
Apr 28 PHP
Linux安装配置php环境的方法
Jan 14 PHP
PHP多进程编程总结(推荐)
Jul 18 PHP
php 时间time与日期date之间的使用详解及区别
Nov 07 PHP
PHP屏蔽关键字实现方法
Nov 17 PHP
PHP操作Redis常用技巧总结
Apr 24 PHP
YII分模块加载路由的实现方法
Oct 01 PHP
PHP+redis实现微博的拉模型案例详解
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
Ajax PHP简单入门教程代码
2008/04/25 PHP
解析func_num_args与func_get_args函数的使用
2013/06/24 PHP
PHP解决URL中文GBK乱码问题的两种方法
2014/06/03 PHP
PHP中new static() 和 new self() 的区别介绍
2015/01/09 PHP
Laravel 5 框架入门(一)
2015/04/09 PHP
基于命令行执行带参数的php脚本并取得参数的方法
2016/01/25 PHP
php投票系统之增加与删除投票(管理员篇)
2016/07/01 PHP
jquery 双色表格实现代码
2009/12/08 Javascript
js模拟滚动条(横向竖向)
2013/02/22 Javascript
JS操作图片(增,删,改) 例子
2013/04/17 Javascript
js 立即调用的函数表达式如何写
2014/01/12 Javascript
Angularjs注入拦截器实现Loading效果
2015/12/28 Javascript
webpack构建换肤功能的思路详解
2017/11/27 Javascript
新版vue-cli模板下本地开发环境使用node服务器跨域的方法
2018/04/03 Javascript
JavaScript捕捉事件和阻止冒泡事件实例分析
2018/08/03 Javascript
nodejs图片处理工具gm用法小结
2018/12/12 NodeJs
vue 根据选择条件显示指定参数的例子
2019/11/09 Javascript
解决vue单页面多个组件嵌套监听浏览器窗口变化问题
2020/07/30 Javascript
[58:54]EG vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
[51:53]DOTA2-DPC中国联赛 正赛 RNG vs Dragon BO3 第二场 1月24日
2021/03/11 DOTA
Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例
2017/08/07 Python
Python内置函数reversed()用法分析
2018/03/20 Python
使用python绘制二元函数图像的实例
2019/02/12 Python
python GUI实现小球满屏乱跑效果
2019/05/09 Python
PYTHON如何读取和写入EXCEL里面的数据
2019/10/28 Python
selenium WebDriverWait类等待机制的实现
2020/03/18 Python
理解Django 中Call Stack机制的小Demo
2020/09/01 Python
pytorch 实现L2和L1正则化regularization的操作
2021/03/03 Python
Wiggle中国:英国骑行、跑步、游泳 & 铁三运动装备专卖网店
2016/08/02 全球购物
单位办理社保介绍信
2014/01/10 职场文书
初中校园广播稿
2014/02/02 职场文书
代领毕业证委托书
2014/08/02 职场文书
女生抽烟检讨书
2014/10/05 职场文书
医院志愿者活动总结
2015/05/06 职场文书
心理健康教育主题班会
2015/08/13 职场文书
单位提档介绍信
2015/10/22 职场文书