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 相关文章推荐
PHP原理之异常机制深入分析
Aug 08 PHP
使用 PHPMAILER 发送邮件实例应用
Nov 07 PHP
php使用sql数据库 获取字段问题介绍
Aug 12 PHP
destoon二次开发常用数据库操作
Jun 21 PHP
php画图实例
Nov 05 PHP
浅谈PHP中类和对象的相关函数
Apr 26 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
Dec 25 PHP
PHP Class SoapClient not found解决方法
Jan 20 PHP
PHP解析url并得到url参数方法总结
Oct 11 PHP
YII框架http缓存操作示例
Apr 29 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
Mar 24 PHP
ThinkPHP5 框架引入 Go AOP,PHP AOP编程项目详解
May 12 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
php 正确解码javascript中通过escape编码后的字符
2010/01/28 PHP
探讨:如何编写PHP扩展
2013/06/13 PHP
PHP中copy on write写时复制机制介绍
2014/05/13 PHP
php中spl_autoload详解
2014/10/17 PHP
curl 出现错误的调试方法(必看)
2017/02/13 PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
2017/05/11 PHP
php-msf源码详解
2017/12/25 PHP
php创建类并调用的实例方法
2019/09/25 PHP
用javascript将数据导入Excel示例代码
2014/09/10 Javascript
Js实现网页键盘控制翻页的方法
2014/10/30 Javascript
简介JavaScript中的setTime()方法的使用
2015/06/11 Javascript
JavaScript实现相册弹窗功能(zepto.js)
2016/06/21 Javascript
jQuery实现页面下拉100像素出现悬浮窗口的方法
2016/09/05 Javascript
jQuery将表单序列化成一个Object对象的实例
2016/11/29 Javascript
vue bus全局事件中心简单Demo详解
2018/02/26 Javascript
Vue 中使用vue2-highcharts实现top功能的示例
2018/03/05 Javascript
基于express中路由规则及获取请求参数的方法
2018/03/12 Javascript
小试SVG之新手小白入门教程
2019/01/08 Javascript
微信小程序与webview交互实现支付功能
2019/06/07 Javascript
vue实现的封装全局filter并统一管理操作示例
2020/02/02 Javascript
微信小程序实现倒计时功能
2020/11/19 Javascript
利用python对Excel中的特定数据提取并写入新表的方法
2018/06/14 Python
Python多进程池 multiprocessing Pool用法示例
2018/09/07 Python
Python 占位符的使用方法详解
2019/07/10 Python
python dict如何定义
2020/09/02 Python
AmazeUI折叠式卡片布局,整合内容列表、表格组件实现
2020/08/20 HTML / CSS
Fresh馥蕾诗英国官网:法国LVMH集团旗下高端天然护肤品牌
2018/11/01 全球购物
巴基斯坦购物网站:Goto
2019/03/11 全球购物
美体小铺法国官方网站:The Body Shop法国
2020/06/04 全球购物
阿迪达斯中国官网:Adidas中国
2020/12/14 全球购物
质检员的岗位职责
2013/11/15 职场文书
监理资料员岗位职责
2014/01/03 职场文书
《这儿真好》教学反思
2014/02/22 职场文书
综治维稳工作承诺书
2014/08/30 职场文书
2014年发展党员工作总结
2014/11/12 职场文书
2015年财务个人工作总结范文
2015/05/22 职场文书