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 相关文章推荐
BBS(php &amp; mysql)完整版(七)
Oct 09 PHP
php 网上商城促销设计实例代码
Feb 17 PHP
深入探讨:Nginx 502 Bad Gateway错误的解决方法
Jun 03 PHP
探讨php中header的用法详解
Jun 07 PHP
淘宝ip地址查询类分享(利用淘宝ip库)
Jan 07 PHP
PHP中IP地址与整型数字互相转换详解
Aug 20 PHP
mysql_connect localhost和127.0.0.1的区别(网络层阐述)
Mar 26 PHP
在PHP程序中使用Rust扩展的方法
Jul 03 PHP
PHP+Javascript实现在线拍照功能实例
Jul 18 PHP
php unicode编码和字符串互转的方法
Aug 12 PHP
CakePHP框架Model关联对象用法分析
Aug 04 PHP
Git命令之分支详解
Mar 02 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+ajaxfileupload+jcrop插件完美实现头像上传剪裁
2014/06/09 PHP
分享微信扫码支付开发遇到问题及解决方案-附Ecshop微信支付插件
2015/08/23 PHP
Yii2框架自定义类统一处理url操作示例
2019/05/25 PHP
setTimeout()与setInterval()方法区别介绍
2013/12/24 Javascript
jquery基础教程之数组使用详解
2014/03/10 Javascript
浏览器缩放检测的js代码
2014/09/28 Javascript
生成二维码方法汇总
2014/12/26 Javascript
javascript中不易分清的slice,splice和split三个函数
2016/03/29 Javascript
纯前端JavaScript实现Excel IO案例分享
2016/08/26 Javascript
jQuery的三种bind/One/Live/On事件绑定使用方法
2017/02/23 Javascript
Bootstrap Table 在指定列中添加下拉框控件并获取所选值
2017/07/31 Javascript
vue给对象动态添加属性和值的实例
2019/09/09 Javascript
微信小程序实现底部弹出模态框
2020/11/18 Javascript
[01:02:54]完美世界DOTA2联赛PWL S2 FTD vs GXR 第一场 11.22
2020/11/26 DOTA
Python 执行字符串表达式函数(eval exec execfile)
2014/08/11 Python
Django静态资源URL STATIC_ROOT的配置方法
2014/11/08 Python
Python实现递归遍历文件夹并删除文件
2016/04/18 Python
Python实现的多线程http压力测试代码
2017/02/08 Python
TensorFlow实现iris数据集线性回归
2018/09/07 Python
Python微医挂号网医生数据抓取
2019/01/24 Python
pytorch打印网络结构的实例
2019/08/19 Python
python matplotlib如何给图中的点加标签
2019/11/14 Python
解决Python命令行下退格,删除,方向键乱码(亲测有效)
2020/01/16 Python
Python如何通过百度翻译API实现翻译功能
2020/04/02 Python
Selenium向iframe富文本框输入内容过程图解
2020/04/10 Python
Ubuntu20下的Django安装的方法步骤
2021/01/24 Python
Python try except finally资源回收的实现
2021/01/25 Python
美国高端牛仔品牌:Silver Jeans
2019/12/12 全球购物
优秀大学生的自我评价
2014/01/16 职场文书
学校安全生产月活动总结
2014/07/05 职场文书
2014年安全保卫工作总结
2014/11/13 职场文书
2015年机关党建工作总结
2015/05/22 职场文书
社区服务活动感想
2015/08/11 职场文书
基于Python绘制子图及子图刻度的变换等的问题
2021/05/23 Python
MySQL 发生同步延迟时Seconds_Behind_Master还为0的原因
2021/06/21 MySQL
基于Java的MathML转图片的方法(示例代码)
2021/06/23 Java/Android