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 表单数据的获取代码
Mar 10 PHP
Drupal读取Excel并导入数据库实例
Mar 02 PHP
php实现的九九乘法口诀表简洁版
Jul 28 PHP
Windows下的PHP 5.3.x安装 Zend Guard Loader教程
Sep 06 PHP
PHP生成条形码大揭秘
Sep 24 PHP
PHP和C#可共用的可逆加密算法详解
Oct 26 PHP
[原创]php使用curl判断网页404(不存在)的方法
Jun 23 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
Aug 12 PHP
php 变量引用与变量销毁机制详细介绍
Dec 05 PHP
Yii2中hasOne、hasMany及多对多关联查询的用法详解
Feb 15 PHP
PHP实现ASCII码与字符串相互转换的方法
Apr 29 PHP
php实现和c#一致的DES加密解密实例
Jul 24 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下删除字符串中HTML标签的函数
2008/08/27 PHP
PHP通过正则表达式下载图片到本地的实现代码
2011/09/19 PHP
php笔记之:文章中图片处理的使用
2013/04/26 PHP
CI框架中zip类应用示例
2014/06/17 PHP
php自定义加密与解密程序实例
2014/12/31 PHP
详解PHP变量传值赋值和引用赋值变量销毁
2019/03/23 PHP
js实现的网页颜色代码表全集
2007/07/17 Javascript
自己的js工具 Cookie 封装
2009/08/21 Javascript
基于jQuery实现的百度导航li拖放排列效果,即时更新数据库
2012/07/31 Javascript
如何将JS的变量值传递给ASP变量
2012/12/10 Javascript
js string 转 int 注意的问题小结
2013/08/15 Javascript
Node.js文件操作方法汇总
2016/03/22 Javascript
AngularJS在IE8的不支持的解决方法
2016/05/13 Javascript
归纳下js面向对象的几种常见写法总结
2016/08/24 Javascript
详解Vue的钩子函数(路由导航守卫、keep-alive、生命周期钩子)
2018/07/24 Javascript
vue form 表单提交后刷新页面的方法
2018/09/04 Javascript
element日历calendar组件上月、今天、下月、日历块点击事件及模板源码
2020/07/27 Javascript
JavaScript实现原型封装轮播图
2020/12/27 Javascript
python实现Adapter模式实例代码
2018/02/09 Python
Django项目中实现使用qq第三方登录功能
2019/08/13 Python
tensorflow 实现打印pb模型的所有节点
2020/01/23 Python
pyinstaller将含有多个py文件的python程序做成exe
2020/04/29 Python
Python 代码调试技巧示例代码
2020/08/11 Python
CSS3中的Transition过度与Animation动画属性使用要点
2016/05/20 HTML / CSS
英国最大的电子零件及配件零售商:Partmaster
2017/04/24 全球购物
买卖正宗运动鞋:GOAT
2019/12/06 全球购物
EJB的激活机制
2013/10/25 面试题
英语专业大学生求职简历的自我评价
2013/10/18 职场文书
学雷锋月活动总结
2014/04/25 职场文书
养牛场项目建议书
2014/05/13 职场文书
交通工程专业推荐信
2014/09/06 职场文书
工作检讨书怎么写
2014/10/10 职场文书
成都人事代理协议书
2014/10/25 职场文书
工程项目经理岗位职责
2015/02/02 职场文书
目标责任书格式范文
2015/05/11 职场文书
使用CSS实现音波加载效果
2023/05/07 HTML / CSS