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 相关文章推荐
一个目录遍历函数
Oct 09 PHP
PHP运行时强制显示出错信息的代码
Apr 20 PHP
DISCUZ在win2003环境下 Unable to access ./include/common.inc.php in... 的问题终极解决方案
Nov 21 PHP
PHP得到mssql的存储过程的输出参数功能实现
Nov 23 PHP
PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法
Jul 08 PHP
ThinkPHP中__initialize()和类的构造函数__construct()用法分析
Nov 29 PHP
php 使用html5实现多文件上传实例
Oct 24 PHP
PHP+Ajax无刷新带进度条图片上传示例
Feb 08 PHP
php生成毫秒时间戳的实例讲解
Sep 22 PHP
PHP实现的函数重载功能示例
Aug 03 PHP
实例讲解php实现多线程
Jan 27 PHP
php pdo连接数据库操作示例
Nov 18 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
如何做到多笔资料的同步
2006/10/09 PHP
flash用php连接数据库的代码
2011/04/21 PHP
PHP获取搜索引擎关键字来源的函数(支持百度和谷歌等搜索引擎)
2012/10/03 PHP
PHP获取一段文本显示点阵宽度和高度的方法
2015/03/12 PHP
PHP排序算法之快速排序(Quick Sort)及其优化算法详解
2018/04/21 PHP
PHP yield关键字功能与用法分析
2019/01/03 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
JavaScript设置FieldSet展开与收缩
2009/05/15 Javascript
JQuery获取各种宽度、高度(format函数)实例
2013/03/04 Javascript
jquery text(),val(),html()方法区别总结
2013/11/04 Javascript
jquery validation验证身份证号,护照,电话号码,email(实例代码)
2013/11/06 Javascript
jquery 日期控件datepicker属性详细解析
2013/11/08 Javascript
详谈jQuery中的this和$(this)
2014/11/13 Javascript
jQuery插件multiScroll实现全屏鼠标滚动切换页面特效
2015/04/12 Javascript
使用javaScript动态加载Js文件和Css文件
2015/10/24 Javascript
Bootstrap整体框架之CSS12栅格系统
2016/12/15 Javascript
整理关于Bootstrap排版的慕课笔记
2017/03/29 Javascript
Vue2.0 实现单选互斥的方法
2018/04/13 Javascript
详解Vue中数组和对象更改后视图不刷新的问题
2018/09/21 Javascript
JQueryDOM之样式操作
2019/03/27 jQuery
python中os和sys模块的区别与常用方法总结
2017/11/14 Python
Python常见字符串操作函数小结【split()、join()、strip()】
2018/02/02 Python
75条笑死人的知乎神回复,用60行代码就爬完了
2019/05/06 Python
TensorFLow 变量命名空间实例
2020/02/11 Python
pandas to_excel 添加颜色操作
2020/07/14 Python
python抢购软件/插件/脚本附完整源码
2021/03/04 Python
css3打造一款漂亮的卡哇伊按钮
2013/03/20 HTML / CSS
iHerb俄罗斯:维生素、补品和天然产品
2020/07/09 全球购物
国际商务系学生个人的自我评价
2013/11/26 职场文书
升职自荐书范文
2013/11/28 职场文书
销售主管的自我评价分享
2014/01/03 职场文书
营销与策划实训报告
2014/11/05 职场文书
幼儿教师师德师风自我评价
2015/03/05 职场文书
2015年妇产科工作总结
2015/05/18 职场文书
Nginx配置并兼容HTTP实现代码解析
2021/03/31 Servers
Java如何实现通过键盘输入一个数组
2022/02/15 Java/Android