php从memcache读取数据再批量写入mysql的方法


Posted in PHP onDecember 29, 2014

本文实例讲述了php从memcache读取数据再批量写入mysql的方法。分享给大家供大家参考。具体分析如下:

用 Memcache 可以缓解 php和数据库压力下面代码是解决高负载下数据库写入瓶颈问题,遇到最实用的:写入ip pv uv的时候,用户达到每分钟几万访问量,要记录这些数据,实时写入数据库必定奔溃.

用以下技术就能解决,还有如用户注册,同一时间断内,大量用户注册,可以缓存后一次性写入到数据库,代码如下:

public function cldata(){ 

$memcache_obj = new Memcache; 

    $memcache_obj->connect('127.0.0.1', '11211'); 

    $all_items = $memcache_obj->getExtendedStats('items'); 

    foreach($all_items as $option=>$vall){ 

        if (isset($all_items[$option]['items'])) { 

                 $items = $all_items[$option]['items']; 

                 foreach ($items as $number => $item) { 

                       $str    = $memcache_obj->getExtendedStats('cachedump', $number, 0); 

                       $line   = $str[$option]; 

if(is_array($line) && count($line) > 0){ 

    foreach($line as $key => $value) { 

        $keys[] = $key; 

} 

} 

} 

} 

} 

 

    dump(count($keys));//获取到key 

    if(count($keys)>50){//要写入的数据条数       

        $end=50; 

    }else{ 

        $end=count($keys); 

    } 

      

    for($i=0;$i<=$end;$i++){ 

        if(!strstr($keys[$i],'datadb')) continue;       

        $ksv = str_replace('datadb','',$keys[$i]); 

          

    /*$logdata = unserialize(S('login'.$ksv));//登录写入 

    if(is_array($logdata)){ 

        $this->addsuidinlogin($logdata[0],$logdata[1],$logdata[2],1);        

    }   */ 

          

        /*$sdata = unserialize(S('regadd'.$ksv));//注册写入 

    if(is_array($sdata)){ 

        $this->baiduad($sdata[0],$sdata[1],$sdata[2],$sdata[3],$sdata[4],1);     

    } 

    */ 

        $regdata = unserialize(S('datadb'.$ksv));       

        $ress[]=$regdata;

        S('datadb'.$ksv,null); 

      

    }   

    $addb = M()->db(66,C('DB_WEB_AD'));//批量写入 addall 

    $addb->table('mj_ad_count')->addall($ress); 

    echo M()->getLastSql();    

}

补充:可以使用的工具如:memadmin 还有memadmin 文档.

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
实用函数9
Nov 08 PHP
Php Mssql操作简单封装支持存储过程
Dec 11 PHP
在MongoDB中模拟Auto Increment的php代码
Mar 06 PHP
php中常用字符串处理代码片段整理
Nov 07 PHP
php 模拟get_headers函数的代码示例
Apr 27 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
Oct 15 PHP
Linux下PHP加速器APC的安装与配置笔记
Oct 24 PHP
ThinkPHP实现带验证码的文件上传功能实例
Nov 01 PHP
php中常见的sql攻击正则表达式汇总
Nov 06 PHP
PHP实现的简易版图片相似度比较
Jan 07 PHP
PHP实现原生态图片上传封装类方法
Nov 08 PHP
PHP 7安装使用体验之性能大提升,兼容性强,扩展支持不够(升级PHP要谨慎)
Jul 27 PHP
php操作mongoDB实例分析
Dec 29 #PHP
Yii实现多数据库主从读写分离的方法
Dec 29 #PHP
php调用mysql存储过程实例分析
Dec 29 #PHP
php生成excel列名超过26列大于Z时的解决方法
Dec 29 #PHP
php+mysqli实现批量替换数据库表前缀的方法
Dec 29 #PHP
PHP跨平台获取服务器IP地址自定义函数分享
Dec 29 #PHP
PHP中使用xmlreader读取xml数据示例
Dec 29 #PHP
You might like
Zend Framework框架路由机制代码分析
2016/03/22 PHP
PHP程序员学习使用Swoole的理由
2018/06/24 PHP
JavaScript 在各个浏览器中执行的耐性
2009/04/06 Javascript
Nodejs进程管理模块forever详解
2014/06/01 NodeJs
jQuery实现鼠标划过修改样式的方法
2015/04/14 Javascript
你知道setTimeout是如何运行的吗?
2016/08/16 Javascript
详解用webpack2.0构建vue2.0超详细精简版
2017/04/05 Javascript
深入理解Angularjs中$http.post与$.post
2017/05/19 Javascript
使用JavaScript实现点击循环切换图片效果
2017/09/03 Javascript
Node.JS使用Sequelize操作MySQL的示例代码
2017/10/09 Javascript
vue中组件通信的八种方式(值得收藏!)
2019/08/09 Javascript
JS快速实现简单计算器
2020/04/08 Javascript
[01:03]悬念揭晓 11月26日DOTA2完美盛典不见不散
2017/11/23 DOTA
python logging类库使用例子
2014/11/22 Python
仅用500行Python代码实现一个英文解析器的教程
2015/04/02 Python
python解决方案:WindowsError: [Error 2]
2016/08/28 Python
利用python画一颗心的方法示例
2017/01/31 Python
聊聊Python中的pypy
2018/01/12 Python
Python 统计字数的思路详解
2018/05/08 Python
Python批处理更改文件名os.rename的方法
2018/10/26 Python
pytorch对可变长度序列的处理方法详解
2018/12/08 Python
GitHub 热门:Python 算法大全,Star 超过 2 万
2019/04/29 Python
python儿童学游戏编程知识点总结
2019/06/03 Python
python的sys.path模块路径添加方式
2020/03/09 Python
Pytorch 使用不同版本的cuda的方法步骤
2020/04/02 Python
Mixbook加拿大:照片书,照片卡,剪贴簿,年历和日历
2017/02/21 全球购物
莫斯科绝对前卫最秘密的商店:SVMoscow
2017/10/23 全球购物
公务员年总结的自我评价
2013/10/25 职场文书
四年大学生活的自我评价范文
2014/02/07 职场文书
表演方阵解说词
2014/02/08 职场文书
运动会方队口号
2014/06/07 职场文书
加油口号大全
2014/06/13 职场文书
售房协议书
2014/08/19 职场文书
街道务虚会发言材料
2014/10/20 职场文书
学校政风行风评议心得体会
2014/10/21 职场文书
公司管理建议书
2015/09/14 职场文书