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 相关文章推荐
?生?D片??C字串
Dec 06 PHP
不用mod_rewrite直接用php实现伪静态化页面代码
Oct 04 PHP
php中global和$GLOBALS[]的分析之一
Feb 02 PHP
基于empty函数的判断详解
Jun 17 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(六)
Jun 23 PHP
ThinkPHP模板判断输出Empty标签用法详解
Jun 30 PHP
php下Memcached入门实例解析
Jan 05 PHP
thinkphp3.2中Lite文件替换框架入口文件或应用入口文件的方法
May 21 PHP
PHP在linux上执行外部命令的方法
Feb 06 PHP
php批量转换文件夹下所有文件编码的函数类
Aug 06 PHP
php实现与python进行socket通信的方法示例
Aug 30 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
May 23 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如何解决网站大流量与高并发的问题
2011/06/25 PHP
PHP实现生成模糊图片的方法示例
2017/12/21 PHP
php+redis实现商城秒杀功能
2020/11/19 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
PHP hex2bin()函数用法讲解
2019/02/25 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
脚本安需导入(装载)的三种模式的对比
2007/06/24 Javascript
Jquery网页内滑动缓冲导航的实现代码
2015/04/05 Javascript
JS实现1000以内被3或5整除的数字之和
2016/02/18 Javascript
基于jquery实现轮播焦点图插件
2016/03/31 Javascript
EasyUI学习之DataGird分页显示数据
2016/12/29 Javascript
从零学习node.js之搭建http服务器(二)
2017/02/21 Javascript
用js将long型数据转换成date型或datetime型的实例
2017/07/03 Javascript
AngularJS动态添加数据并删除的实例
2018/02/27 Javascript
微信小程序wxs实现吸顶效果
2020/01/08 Javascript
Node.js API详解之 os模块用法实例分析
2020/05/06 Javascript
vue-router 2.0 跳转之router.push()用法说明
2020/08/12 Javascript
在react项目中使用antd的form组件,动态设置input框的值
2020/10/24 Javascript
python脚本监控docker容器
2016/04/27 Python
python3批量删除豆瓣分组下的好友的实现代码
2016/06/07 Python
简单谈谈Python中的几种常见的数据类型
2017/02/10 Python
python 美化输出信息的实例
2018/10/15 Python
python将视频转换为全字符视频
2019/04/26 Python
pycharm不能运行.py文件的解决方法
2020/02/12 Python
Kears 使用:通过回调函数保存最佳准确率下的模型操作
2020/06/17 Python
python如何爬取动态网站
2020/09/09 Python
跑鞋、网球鞋、网球拍、服装及装备:Holabird Sports
2016/09/19 全球购物
澳大利亚和新西兰最大的在线旅行社之一:Aunt Betty
2019/08/07 全球购物
可爱的童装和鞋子:Fabkids
2019/08/16 全球购物
中海讯通笔试题
2015/09/15 面试题
经贸日语专业个人求职信范文
2013/12/28 职场文书
毕业证代领委托书
2014/09/26 职场文书
检讨书怎么写
2015/01/23 职场文书
2015年教导处教学工作总结
2015/07/22 职场文书
python 实现的截屏工具
2021/05/08 Python
vue3引入highlight.js进行代码高亮的方法实例
2022/04/08 Vue.js