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之Smarty入门
Jan 04 PHP
JpGraph php柱状图使用介绍
Aug 23 PHP
用C/C++扩展你的PHP 为你的php增加功能
Sep 06 PHP
php类中private属性继承问题分析
Nov 01 PHP
php利用curl抓取新浪微博内容示例
Apr 27 PHP
9个经典的PHP代码片段分享
Dec 18 PHP
php curl 上传文件代码实例
Apr 27 PHP
Joomla简单判断用户是否登录的方法
May 04 PHP
PHP函数rtrim()使用中的怪异现象分析
Feb 24 PHP
PHP实现git部署的方法教程
Dec 19 PHP
php删除一个路径下的所有文件夹和文件的方法
Feb 07 PHP
java解析json方法总结
May 16 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
层叠菜单的动态生成
2006/10/09 PHP
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
2014/11/18 PHP
PHP使用适合阅读的格式显示文件大小的方法
2015/03/05 PHP
深入理解PHP内核(二)之SAPI探究
2015/11/10 PHP
php连接微软MSSQL(sql server)完全攻略
2016/11/27 PHP
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
php实现每日签到功能
2018/11/29 PHP
js DataSet数据源处理代码
2010/03/29 Javascript
ECMAScript 5中的属性描述符详解
2015/03/02 Javascript
jQuery实现图片左右滚动特效
2020/04/20 Javascript
快速学习AngularJs HTTP响应拦截器
2015/12/31 Javascript
json格式数据的添加,删除及排序方法
2016/01/21 Javascript
jQuery的内容过滤选择器学习教程
2016/04/18 Javascript
浅谈js中对象的使用
2016/08/11 Javascript
微信小程序 input输入框控件详解及实例(多种示例)
2016/12/14 Javascript
Ajax验证用户名或昵称是否已被注册
2017/04/05 Javascript
Node.js安装配置图文教程
2017/05/10 Javascript
利用JS对iframe父子(内外)页面进行操作的方法教程
2017/06/15 Javascript
Vue组件和Route的生命周期实例详解
2018/02/10 Javascript
微信小程序用户信息encryptedData详解
2018/08/24 Javascript
jquery 键盘事件 keypress() keydown() keyup()用法总结
2019/10/23 jQuery
python中常用检测字符串相关函数汇总
2015/04/15 Python
Python loguru日志库之高效输出控制台日志和日志记录
2020/03/07 Python
浅谈Python中的模块
2020/06/10 Python
基于logstash实现日志文件同步elasticsearch
2020/08/06 Python
python Selenium 库的使用技巧
2020/10/16 Python
matplotlib事件处理基础(事件绑定、事件属性)
2021/02/03 Python
html5将图片转换成base64的实例代码
2016/09/21 HTML / CSS
飞利浦美国官网:Philips美国
2020/02/28 全球购物
运动会邀请函范文
2014/02/06 职场文书
遗产继承公证书
2014/04/09 职场文书
给校长的建议书400字
2014/05/15 职场文书
优秀党员自我评价范文
2014/09/15 职场文书
运动会1000米加油稿
2015/07/21 职场文书
个人向公司借款协议书
2016/03/19 职场文书
Mybatis-plus配置分页插件返回统一结果集
2022/06/21 Java/Android