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 相关文章推荐
使用adodb lite解决问题
Dec 31 PHP
15种PHP Encoder的比较
Mar 06 PHP
站长助手-网站web在线管理程序 v1.0 下载
May 12 PHP
PHP中static关键字原理的学习研究分析
Jul 18 PHP
PHP批量采集下载美女图片的实现代码
Jun 03 PHP
php实现可以设置中奖概率的抽奖程序代码分享
Jan 19 PHP
php简单实现屏蔽指定ip段用户的访问
Apr 29 PHP
PHP安装memcached扩展笔记
May 28 PHP
Smarty使用自定义资源的方法
Aug 08 PHP
PHP 返回13位时间戳的实现代码
May 13 PHP
Yii2使用$this-&gt;context获取当前的Module、Controller(控制器)、Action等
Mar 29 PHP
Laravel学习笔记之Artisan命令生成自定义模板的方法
Nov 22 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
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
2009/04/24 PHP
php代码书写习惯优化小结
2013/06/20 PHP
PHP根据session与cookie用户登录状态操作类的代码
2016/05/13 PHP
php实现图片按比例截取的方法
2017/02/06 PHP
php封装的验证码类分享
2017/02/26 PHP
PHP实现微信商户支付企业付款到零钱功能
2018/09/30 PHP
php微信公众号开发之简答题
2018/10/20 PHP
window.dialogArguments 使用说明
2011/04/11 Javascript
Jquery阻止事件冒泡 event.stopPropagation
2011/12/11 Javascript
jQuery带箭头提示框tooltips插件集锦
2014/11/17 Javascript
jQuery学习笔记之基础中的基础
2015/01/19 Javascript
利用JS轻松实现获取表单数据
2016/12/06 Javascript
Node.js利用Net模块实现多人命令行聊天室的方法
2016/12/23 Javascript
JavaScript BASE64算法实现(完美解决中文乱码)
2017/01/10 Javascript
在 Angular2 中实现自定义校验指令(确认密码)的方法
2017/01/23 Javascript
jQuery中layer分页器的使用
2017/03/13 Javascript
jQuery实现切换隐藏与显示同时切换图标功能
2017/10/29 jQuery
微信小程序switch开关选择器使用详解
2018/01/31 Javascript
Vue数据监听方法watch的使用
2018/03/28 Javascript
详解Vue的mixin策略
2020/11/19 Vue.js
[02:14]DOTA2英雄基础教程 修补匠
2013/12/23 DOTA
深入解析Python中的lambda表达式的用法
2015/08/28 Python
Python之多线程爬虫抓取网页图片的示例代码
2018/01/10 Python
Python get获取页面cookie代码实例
2018/09/12 Python
Python整数对象实现原理详解
2019/07/01 Python
详解Python图像处理库Pillow常用使用方法
2019/09/02 Python
Python Print实现在输出中插入变量的例子
2019/12/25 Python
python3中datetime库,time库以及pandas中的时间函数区别与详解
2020/04/16 Python
Django 解决新建表删除后无法重新创建等问题
2020/05/21 Python
CSS3中的content属性使用示例
2015/07/20 HTML / CSS
西班牙灯具网上商店:Lampara.es
2018/06/05 全球购物
捷科时代的软件测试笔试题
2015/11/09 面试题
MYSQL支持事务吗
2013/08/09 面试题
大专应届生个人简历的自我评价
2013/10/15 职场文书
合同意向书范本
2014/07/30 职场文书
2015年“公民道德宣传日”活动方案
2015/05/06 职场文书