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中Date获取时间不正确怎么办
Jun 05 PHP
php chr() ord()中文截取乱码问题解决方法
Sep 08 PHP
php curl获取网页内容(IPV6下超时)的解决办法
Jul 16 PHP
深入解析PHP 5.3.x 的strtotime() 时区设定 警告信息修复
Aug 05 PHP
PHP APC配置文件2套和参数详解
Jun 11 PHP
destoon实现调用图文新闻的方法
Aug 21 PHP
php画图实例
Nov 05 PHP
php简单判断文本编码的方法
Jul 30 PHP
thinkphp多层MVC用法分析
Dec 30 PHP
PHP实现生成数据字典功能示例
May 24 PHP
php转换上传word文件为PDF的方法【基于COM组件】
Jun 10 PHP
详解thinkphp的Auth类认证
May 28 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初学者们头痛的十四个问题
2007/01/15 PHP
php 静态变量的初始化
2009/11/15 PHP
php 目录与文件处理-郑阿奇(续)
2011/07/04 PHP
用PHP写的基于Memcache的Queue实现代码
2011/11/27 PHP
javascript实现动态增加删除表格行(兼容IE/FF)
2007/04/02 Javascript
jQuery validate 中文API 附validate.js中文api手册
2010/07/31 Javascript
jquery js 重置表单 reset()具体实现代码
2013/08/05 Javascript
JavaScript利用append添加元素报错的解决方法
2014/07/01 Javascript
jquery ajax分页插件的简单实现
2016/01/27 Javascript
BootStrap3学习笔记(一)之网格系统
2016/05/20 Javascript
js中遍历Map对象的方法
2016/07/27 Javascript
深入理解JavaScript中的块级作用域、私有变量与模块模式
2016/10/31 Javascript
详解AngularJs ui-router 路由的简单介绍
2017/04/26 Javascript
react-native 完整实现登录功能的示例代码
2017/09/11 Javascript
BootStrap Table实现server分页序号连续显示功能(当前页从上一页的结束序号开始)
2017/09/12 Javascript
基于js中this和event 的区别(详解)
2017/10/24 Javascript
在react-router4中进行代码拆分的方法(基于webpack)
2018/03/08 Javascript
iview中Select 选择器多选校验方法
2018/03/15 Javascript
ES6之模版字符串的具体使用
2018/05/17 Javascript
Vue-不允许嵌套式的渲染方法
2018/09/13 Javascript
用图片替换checkbox原始样式并实现同样的功能
2018/11/15 Javascript
如何通过javaScript去除字符串两端的空白字符
2020/02/06 Javascript
vue瀑布流组件实现上拉加载更多
2020/03/10 Javascript
Python用GET方法上传文件
2015/03/10 Python
简单介绍Python中的floor()方法
2015/05/15 Python
python按时间排序目录下的文件实现方法
2018/10/17 Python
python正则表达式匹配IP代码实例
2019/12/28 Python
Python装饰器原理与基本用法分析
2020/01/07 Python
python-OpenCV 实现将数组转换成灰度图和彩图
2020/01/09 Python
学python最电脑配置有要求么
2020/07/05 Python
Django contrib auth authenticate函数源码解析
2020/11/12 Python
一款恶搞头像特效的制作过程 利用css3和jquery
2014/11/21 HTML / CSS
英国羊皮鞋类领先品牌:Just Sheepskin
2019/12/12 全球购物
渗透攻击的测试步骤
2014/06/07 面试题
数控专业毕业生求职信范文
2013/09/21 职场文书
Pytorch数据读取之Dataset和DataLoader知识总结
2021/05/23 Python