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来处理多个提交任务
Oct 09 PHP
PHP常用代码
Nov 23 PHP
PHP和XSS跨站攻击的防范
Apr 17 PHP
PHP删除HTMl标签的实现代码
Jun 30 PHP
使用php伪造referer的方法 利用referer防止图片盗链
Jan 20 PHP
php使用qr生成二维码的示例分享
Jan 20 PHP
thinkphp学习笔记之多表查询
Jul 28 PHP
PHP彩蛋信息介绍和阻止泄漏的方法(隐藏功能)
Aug 06 PHP
ThinkPHP中redirect用法分析
Dec 05 PHP
PHP采集静态页面并把页面css,img,js保存的方法
Dec 23 PHP
linux中cd命令使用详解
Jan 08 PHP
PHP简单验证码功能机制实例详解
Mar 27 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
15种PHP Encoder的比较
2007/04/17 PHP
php入门之连接mysql数据库的一个类
2012/04/21 PHP
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
2014/08/23 PHP
分享3个php获取日历的函数
2015/09/25 PHP
php正则修正符用法实例详解
2016/12/29 PHP
PHP和MYSQL实现分页导航思路详解
2017/04/11 PHP
ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解
2019/04/03 PHP
使用tp框架和SQL语句查询数据表中的某字段包含某值
2019/10/18 PHP
PHP调用QQ互联接口实现QQ登录网站功能示例
2019/10/24 PHP
Nigma vs Alliance BO5 第四场2.14
2021/03/10 DOTA
js 屏蔽鼠标右键脚本附破解方法
2009/12/03 Javascript
Javascript从数组中随机取出不同元素的两种方法
2016/09/22 Javascript
从零学习node.js之express入门(六)
2017/02/25 Javascript
浅谈JS对html标签的属性的干预以及对CSS样式表属性的干预
2017/06/25 Javascript
详解用场景去理解函数柯里化(入门篇)
2019/04/11 Javascript
Python中matplotlib中文乱码解决办法
2017/05/12 Python
python使用邻接矩阵构造图代码示例
2017/11/10 Python
python使用tensorflow保存、加载和使用模型的方法
2018/01/31 Python
详解Python核心对象类型字符串
2018/02/11 Python
实例讲解Python中浮点型的基本内容
2019/02/11 Python
Python中的十大图像处理工具(小结)
2019/06/10 Python
python字符串格式化方式解析
2019/10/19 Python
如何使用Python破解ZIP或RAR压缩文件密码
2020/01/09 Python
Pytorch高阶OP操作where,gather原理
2020/04/30 Python
美国蔬菜和植物种子公司:Burpee
2017/02/01 全球购物
Topshop法国官网:英国快速时尚品牌
2018/04/08 全球购物
美国林业供应商:Forestry Suppliers
2019/05/01 全球购物
将n个数按输入顺序的逆序排列,用函数实现
2012/11/14 面试题
高二英语教学反思
2014/01/19 职场文书
教学实验楼管理制度
2014/02/01 职场文书
服务行业口号
2014/06/11 职场文书
中专毕业生的自荐书
2014/07/01 职场文书
2015年公司新年寄语
2014/12/08 职场文书
Python实现打乒乓小游戏
2021/09/25 Python
我国拿下天问一号火星着陆区附近 22 个地理实体命名:平乐、西柏坡、古田、漠河等
2022/04/29 数码科技