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中file_exists与is_file,is_dir的区别介绍
Sep 12 PHP
PHP静态调用非静态方法的应用分析
May 02 PHP
解析php框架codeigniter中如何使用框架的session
Jun 24 PHP
php 验证码(倾斜,正弦干扰线,黏贴,旋转)
Jun 29 PHP
php+ajax实现图片文件上传功能实例
Jun 17 PHP
浅谈php和.net的区别
Sep 28 PHP
php查询ip所在地的方法
Dec 05 PHP
php启用sphinx全文搜索的实现方法
Dec 24 PHP
PHP+sqlite数据库操作示例(创建/打开/插入/检索)
May 26 PHP
php curl上传、下载、https登陆实现代码
Jul 23 PHP
PHP通过文件路径获取文件名的实例代码
Oct 14 PHP
6个常见的 PHP 安全性攻击实例和阻止方法
Dec 16 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遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结
2014/11/18 PHP
PHP中Notice错误常见解决方法
2017/04/28 PHP
基本jquery的控制tabs打开的数量的代码
2010/10/17 Javascript
缓动函数requestAnimationFrame 更好的实现浏览器经动画
2012/12/07 Javascript
鼠标焦点离开文本框时验证的js代码
2013/07/19 Javascript
Node.js中使用mongoskin操作mongoDB实例
2014/09/28 Javascript
jQuery实现文本框输入同步的方法
2015/06/20 Javascript
AngularJs 60分钟入门基础教程
2016/04/03 Javascript
关于JavaScript限制字数的输入框的那些事
2016/08/14 Javascript
javascript帧动画(实例讲解)
2017/09/02 Javascript
基于three.js编写的一个项目类示例代码
2018/01/05 Javascript
学习Vue组件实例
2018/04/28 Javascript
vue中使用protobuf的过程记录
2018/10/26 Javascript
[55:32]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第二场
2018/04/05 DOTA
Python Selenium Cookie 绕过验证码实现登录示例代码
2018/04/10 Python
Python使用Shelve保存对象方法总结
2019/01/28 Python
python点击鼠标获取坐标(Graphics)
2019/08/10 Python
使用Python进行中文繁简转换的实现代码
2019/10/18 Python
python 计算方位角实例(根据两点的坐标计算)
2020/01/17 Python
tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)
2020/06/30 Python
Python字典取键、值对的方法步骤
2020/09/30 Python
HTML5语音识别标签写法附图
2013/11/18 HTML / CSS
香港最大的洋酒零售连锁店:屈臣氏酒窖(Watson’s Wine)
2018/12/10 全球购物
CNC数控操作工岗位职责
2013/11/19 职场文书
护理职业生涯规划书
2014/01/24 职场文书
计算机应用专业毕业生求职信
2014/06/03 职场文书
2014年学生会部门工作总结
2014/11/07 职场文书
罚站检讨书
2015/01/29 职场文书
机关保密工作承诺书
2015/05/04 职场文书
2016年教师学习教师法心得体会
2016/01/20 职场文书
交通安全宣传标语(100条)
2019/08/22 职场文书
变长双向rnn的正确使用姿势教学
2021/05/31 Python
Python初识逻辑与if语句及用法大全
2021/08/07 Python
CSS 使用 resize 实现图片拖拽切换预览功能(强大功能)
2021/08/23 HTML / CSS
Hive HQL支持2种查询语句风格
2022/06/25 数据库
CSS 鼠标点击拖拽效果的实现代码
2022/12/24 HTML / CSS