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 相关文章推荐
PHP4中实现动态代理
Oct 09 PHP
图书管理程序(一)
Oct 09 PHP
php模板之Phpbean的目录结构
Jan 10 PHP
php使用base64加密解密图片示例分享
Jan 20 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(三)
Jun 23 PHP
浅析php适配器模式(Adapter)
Nov 25 PHP
PHP随手笔记整理之PHP脚本和JAVA连接mysql数据库
Nov 25 PHP
PHP不使用递归的无限级分类简单实例
Nov 05 PHP
php 7新特性之类型申明详解
Jun 06 PHP
php模仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(中)
Jun 11 PHP
php实现的rc4加密解密类定义与用法示例
Aug 16 PHP
PHP 结合 Boostrap 结合 js 实现学生列表删除编辑及搜索功能
May 21 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
乐信RP2100的电路分析和打磨
2021/03/02 无线电
php面向对象全攻略 (八)重载新的方法
2009/09/30 PHP
使用php清除bom示例
2014/03/03 PHP
Zend Framework动作控制器用法示例
2016/12/09 PHP
thinkPHP框架乐观锁和悲观锁实例分析
2019/10/30 PHP
JavaScript语言中的Literal Syntax特性分析
2007/03/08 Javascript
在ASP.NET中使用JavaScript脚本的方法
2013/11/12 Javascript
jquery 通过name快速取值示例
2014/01/24 Javascript
JavaScript保留关键字汇总
2015/12/01 Javascript
js阻止浏览器默认行为触发的通用方法(推荐)
2016/05/15 Javascript
AngularJs解决跨域问题案例详解(简单方法)
2016/05/19 Javascript
Node.js中使用mongoose操作mongodb数据库的方法
2017/09/12 Javascript
vue通过滚动行为实现从列表到详情,返回列表原位置的方法
2018/08/31 Javascript
jQuery滑动效果实现方法分析
2018/09/05 jQuery
微信公众平台获取access_token的方法步骤
2019/03/29 Javascript
在vue中把含有html标签转为html渲染页面的实例
2019/10/28 Javascript
使用PYTHON创建XML文档
2012/03/01 Python
python自动化测试之setUp与tearDown实例
2014/09/28 Python
python在windows下实现ping操作并接收返回信息的方法
2015/03/20 Python
python3实现读取chrome浏览器cookie
2016/06/19 Python
Python+matplotlib+numpy绘制精美的条形统计图
2018/01/02 Python
Windows 7下Python Web环境搭建图文教程
2018/03/20 Python
Python地图绘制实操详解
2019/03/04 Python
Python学习笔记之pandas索引列、过滤、分组、求和功能示例
2019/06/03 Python
Win下PyInstaller 安装和使用教程
2019/12/25 Python
1688平价精选商城:阿里集团旗下,工厂出厂价格直销
2017/04/24 全球购物
瑞典时尚耳机品牌:Urbanears
2017/07/26 全球购物
英国标准协会商店:BSI Shop
2019/02/25 全球购物
屈臣氏越南官网:Watsons越南
2021/01/14 全球购物
超市仓管员岗位职责
2014/04/07 职场文书
网络优化专员求职信
2014/05/04 职场文书
自主招生自荐信格式
2015/03/04 职场文书
公司内部升职自荐信
2015/03/27 职场文书
2015年教师节新闻稿
2015/07/17 职场文书
合作意向书怎么写
2019/06/24 职场文书
python pygame 开发五子棋双人对弈
2022/05/02 Python