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生成网页快照 不用COM不用扩展.
Feb 11 PHP
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
Aug 03 PHP
php数组函数序列之array_values() 获取数组元素值的函数与方法
Oct 30 PHP
php异常处理使用示例
Feb 25 PHP
PHP curl 抓取AJAX异步内容示例
Sep 09 PHP
php实现遍历目录并删除指定文件中指定内容
Jan 21 PHP
PHP中异常处理的一些方法整理
Jul 03 PHP
PHP Web木马扫描器代码分享
Sep 06 PHP
php多文件打包下载的实例代码
Jul 12 PHP
Laravel框架实现的上传图片到七牛功能详解
Sep 06 PHP
PHP设计模式之数据访问对象模式(DAO)原理与用法实例分析
Dec 12 PHP
TP5框架实现一次选择多张图片并预览的方法示例
Apr 04 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下一个非常全面获取图象信息的函数
2008/11/20 PHP
PHP数组内存耗用太多问题的解决方法
2010/04/05 PHP
解析php中call_user_func_array的作用
2013/06/07 PHP
php实现xml转换数组的方法示例
2017/02/03 PHP
PHP正则删除HTML代码中宽高样式的方法
2017/06/12 PHP
javascript面向对象之Javascript 继承
2010/05/04 Javascript
WEB 浏览器兼容 推荐收藏
2010/05/14 Javascript
关于JS控制代码暂停的实现方法分享
2012/10/11 Javascript
JavaScript中setAttribute用法介绍
2013/07/20 Javascript
Javascript毫秒数用法实例
2015/02/05 Javascript
基于JavaScript如何制作遮罩层对话框
2016/01/26 Javascript
AngularJS向后端ASP.NET API控制器上传文件
2016/02/03 Javascript
js与applet相互调用的方法
2016/06/22 Javascript
基于canvas的二维码邀请函生成插件
2017/02/14 Javascript
node通过npm写一个cli命令行工具
2017/10/12 Javascript
微信小程序解除10个请求并发限制
2018/12/18 Javascript
详解Vue源码学习之双向绑定
2019/04/10 Javascript
Vue 之孙组件向爷组件通信的实现
2019/04/23 Javascript
vue.js 2.*项目环境搭建、运行、打包发布的详细步骤
2019/05/01 Javascript
微信小程序页面间跳转传参方式总结
2019/06/13 Javascript
js实现点赞按钮功能的实例代码
2020/03/06 Javascript
JS自定义滚动条效果
2020/03/13 Javascript
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:EE凭借法力虚空拿下4杀
2017/03/30 DOTA
详解Django框架中的视图级缓存
2015/07/23 Python
Python框架Flask的基本数据库操作方法分析
2018/07/13 Python
Python 函数绘图及函数图像微分与积分
2019/11/20 Python
浅谈Python中threading join和setDaemon用法及区别说明
2020/05/02 Python
享誉全球的多元化时尚精品购物平台:Farfetch发发奇(支持中文)
2017/08/08 全球购物
药剂专业学生求职信范文
2013/12/28 职场文书
公司端午节活动方案
2014/02/04 职场文书
煤矿班组长竞聘书
2014/03/31 职场文书
庆国庆活动总结
2014/08/28 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
2015年医务科工作总结范文
2015/05/26 职场文书
Nginx URL重写rewrite机制原理及使用实例
2021/04/01 Servers
Python办公自动化之教你用Python批量识别发票并录入到Excel表格中
2021/06/26 Python