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 01 PHP
php下正则来匹配dede模板标签的代码
Aug 21 PHP
PHP 第二节 数据类型之数组
Apr 28 PHP
对淘宝URL中ID提取的PHP代码
Sep 01 PHP
php生成QRcode实例
Sep 22 PHP
php判断用户是否手机访问代码
Jun 08 PHP
php根据日期显示所在星座的方法
Jul 13 PHP
php根据用户语言跳转相应网页
Nov 04 PHP
mysql_escape_string()函数用法分析
Apr 25 PHP
php实现xml转换数组的方法示例
Feb 03 PHP
Yii输入正确验证码却验证失败的解决方法
Jun 06 PHP
简单实用的PHP文本缓存类实例
Mar 22 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
thinkphp普通查询与表达式查询实例分析
2014/11/24 PHP
linux下为php添加iconv模块的方法
2016/02/28 PHP
浅谈php中的循环while、do...while、for、foreach四种循环
2016/11/05 PHP
php 计算两个时间相差的天数、小时数、分钟数、秒数详解及实例代码
2016/11/09 PHP
PDO实现学生管理系统
2020/03/21 PHP
关于Mozilla浏览器不支持innerText的解决办法
2011/01/01 Javascript
JS网页播放声音实现代码兼容各种浏览器
2013/09/22 Javascript
jquery实现点击页面计算点击次数
2015/01/23 Javascript
Javascript数组操作函数总结
2015/02/05 Javascript
jquery+css3实现网页背景花瓣随机飘落特效
2015/08/17 Javascript
AngularJS中如何使用$parse或$eval在运行时对Scope变量赋值
2016/01/25 Javascript
JS打印组合功能
2016/08/04 Javascript
利用JS实现简单的日期选择插件
2017/01/23 Javascript
bootstrap动态添加面包屑(breadcrumb)及其响应事件的方法
2017/05/25 Javascript
微信小程序 检查接口状态实例详解
2017/06/23 Javascript
详解vue-cli项目中怎么使用mock数据
2018/05/29 Javascript
[03:07]DOTA2英雄基础教程 冰霜诅咒极寒幽魂
2013/12/06 DOTA
Python函数参数类型*、**的区别
2015/04/11 Python
Python获取当前公网ip并自动断开宽带连接实例代码
2018/01/12 Python
python数据结构之线性表的顺序存储结构
2018/09/28 Python
python3 自动识别usb连接状态,即对usb重连的判断方法
2019/07/03 Python
PowerBI和Python关于数据分析的对比
2019/07/11 Python
Python利用for循环打印星号三角形的案例
2020/04/12 Python
利用4行Python代码监测每一行程序的运行时间和空间消耗
2020/04/22 Python
python和php学习哪个更有发展
2020/06/17 Python
解决Ubuntu18中的pycharm不能调用tensorflow-gpu的问题
2020/09/17 Python
python+opencv实现车道线检测
2021/02/19 Python
小米官方旗舰店:Xiaomi
2020/08/07 全球购物
美术教师自我鉴定
2014/02/12 职场文书
财产公证书格式
2014/04/10 职场文书
安全保证书范文
2014/04/29 职场文书
巾帼文明岗申报材料
2014/05/01 职场文书
2015年艾滋病宣传活动总结
2015/03/27 职场文书
Javascript中的解构赋值语法详解
2021/04/02 Javascript
用Python监控你的朋友都在浏览哪些网站?
2021/05/27 Python
SpringCloud Function SpEL注入漏洞分析及环境搭建
2022/04/08 Java/Android