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
phpmyadmin里面导入sql语句格式的大量数据的方法
Jun 05 PHP
为IP查询添加GOOGLE地图功能的代码
Aug 08 PHP
php数组函数序列之array_search()- 按元素值返回键名
Nov 04 PHP
使用php将某个目录下面的所有文件罗列出来的方法详解
Jun 21 PHP
PHP生成验证码时“图像因其本身有错无法显示”的解决方法
Aug 07 PHP
PHP快速按行读取CSV大文件的封装类分享(也适用于其它超大文本文件)
Apr 10 PHP
thinkphp使用literal防止模板标签被解析的方法
Nov 22 PHP
CodeIgniter分页类pagination使用方法示例
Mar 28 PHP
PHP模块化安装教程
Jun 01 PHP
PHP实现的策略模式简单示例
Aug 25 PHP
php实现的简单多进程服务器类完整示例
Feb 01 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
重置版宣传动画
2020/04/09 魔兽争霸
php中switch与ifelse的效率区别及适用情况分析
2015/02/12 PHP
thinkPHP分组后模板无法加载问题解决方法
2016/07/12 PHP
PHP使用FFmpeg获取视频播放总时长与码率等信息
2016/09/13 PHP
PHP简单获取上月、本月、近15天、近30天的方法示例
2017/07/03 PHP
PHP双向链表定义与用法示例
2018/01/31 PHP
php 字符串中是否包含指定字符串的多种方法
2018/04/12 PHP
Alliance vs AM BO3 第一场2.13
2021/03/10 DOTA
Javascript实现仿WebQQ界面的“浮云”兼容 IE7以上版本及FF
2011/04/27 Javascript
关于全局变量和局部变量的那些事
2013/01/11 Javascript
js获取多个tagname的节点数组
2013/09/22 Javascript
用js通过url传参把数据从一个页面传到另一个页面
2014/09/01 Javascript
JavaScript更改原始对象valueOf的方法
2015/03/19 Javascript
jQuery插件Tmpl的简单使用方法
2015/04/27 Javascript
基于JavaScript实现的快速排序算法分析
2017/04/14 Javascript
vue keep-alive 动态删除组件缓存的例子
2019/11/04 Javascript
jquery向后台提交数组的代码分析
2020/02/20 jQuery
[48:32]VGJ.T vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
使用Python的Supervisor进行进程监控以及自动启动
2014/05/29 Python
python构建自定义回调函数详解
2017/06/20 Python
Python常见数据结构之栈与队列用法示例
2019/01/14 Python
Pycharm快捷键配置详细整理
2020/10/13 Python
python中turtle库的简单使用教程
2020/11/11 Python
Python实现简单的2048小游戏
2021/03/01 Python
CSS3的first-child选择器实战攻略
2016/04/28 HTML / CSS
CSS3实现王者匹配时的粒子动画效果
2019/04/12 HTML / CSS
Tenstickers法国:墙贴和装饰贴纸
2019/08/26 全球购物
澳大利亚二手奢侈品网站:Modsie
2019/09/23 全球购物
Nike意大利官网:Nike.com IT
2020/01/19 全球购物
一些PHP的面试题
2015/05/06 面试题
小学教师事迹材料
2014/01/13 职场文书
开学季活动策划方案
2014/02/28 职场文书
七夕情人节促销方案
2014/06/07 职场文书
研究生毕业登记表的自我鉴定范文
2019/07/15 职场文书
2019年感恩励志演讲稿(收藏备用)
2019/09/11 职场文书
如何利用Matlab制作一款真正的拼图小游戏
2021/05/11 Python