这篇文章主要介绍了php从memcache读取数据再批量写入mysql的方法,可利用memcache缓解服务器读写压力,并实现数据库数据的写入操作,非常具有实用价值,需要的朋友可以参考下.

用 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();    

}

php从memcache读取数据再批量写入mysql的方法的更多相关文章

  1. 从Excel中读取数据并批量写入MySQL数据库(基于MySQLdb)

    一.Excel内容如下,现在需要将Excel中的数据全部写入的MySQL数据库中: 二.连接MySQL的第三方库使用的是“MySQLdb”,代码如下: # -*- coding:utf-8 -*-im ...

  2. 从Excel中读取数据并批量写入MySQL数据库(基于pymysql)

    一.Excel内容时这样的: 二.最初的代码是这样的: # -*- coding:utf-8 -*-import pymysqlfrom xlrd import open_workbook class ...

  3. 批量插入数据, 将DataTable里的数据批量写入数据库的方法

    大量数据导入操作, 也就是直接将DataTable里的内容写入到数据库 通用方法: 拼接Insert语句, 好土鳖 1. MS Sql Server:   使用SqlBulkCopy 2. MySql ...

  4. 对大数据的批量导入MySQL数据库

    自己的库里有索引在用insert导入数据时会变慢很多 使用事务+批量导入 可以配置使用spring+mybatis整合的方式关闭自动提交事务(地址),选择批量导入每一百条导入使用list存储值传入到m ...

  5. python 读取本地文件批量插入mysql

    Uin_phone.txt 本地文件内容 有1000条,这里只是展示前几条,供参考 133584752 133584759 133584764 133584773 133584775 13358477 ...

  6. Javascript(JS)对Cookie的读取、删除、写入操作帮助方法

    var CookieUtils = { get: function (name) { var cookieName = encodeURIComponent(name) + '=', cookieSt ...

  7. Spark操作MySQL,Hive并写入MySQL数据库

    最近一个项目,需要操作近70亿数据进行统计分析.如果存入MySQL,很难读取如此大的数据,即使使用搜索引擎,也是非常慢.经过调研决定借助我们公司大数据平台结合Spark技术完成这么大数据量的统计分析. ...

  8. c#WebApi使用form表单提交excel,实现批量写入数据库

    思路:用户点击下载模板按钮,获取到excel模板,然后向里面填写数据保存.from表单提交的时候选择保存好的excel,实现数据的批量导入过程 先把模板放在服务器的项目目录下面:如 模板我一般放在:F ...

  9. Scrapy爬取豆瓣图书数据并写入MySQL

    项目地址 BookSpider 介绍 本篇涉及的内容主要是获取分类下的所有图书数据,并写入MySQL 准备 Python3.6.Scrapy.Twisted.MySQLdb等 演示 代码 一.创建项目 ...

随机推荐

  1. NHibernate使用无状态Sessions

    NHibernate 3.0 Cookbook第三章,Using stateless sessions的翻译. 当要处理大量的数据,你通常可能会使用更"底层"的API来改善性能,在 ...

  2. MySql_SQLyog+SQL Assistant实现智能提示

    相信用过sqlserver+SQL Assistant的同学都知道其智能提示多么方便,但是转到mysql后,无论是使用navicat还是webbench都无法实现较好的智能提示效果, 最终在网上找到使 ...

  3. A电脑的gho还原到B电脑上的驱动解决方案

    近来给B笔记本做系统,我有一个gho,是A电脑的,我想直接把系统复制过去,我的这个gho有50G,里面已经配置好了java,安卓,cocos2dx的各种环境变量,安卓开发的朋友都知道这个有多恶心,我就 ...

  4. 初步理解socket

    近期研究下socket,发现自己还是有非常多不明确的地方,索性沉下心来,从最基础開始学习,開始看起,如今对自己的学习做下小小总结,以便和大家分享,如有谬误,敬请指正. 原创文章,转载请注明出处:htt ...

  5. gpu和cpu区别

    GPU的功耗远远超过CPUCache, local memory: CPU > GPU Threads(线程数): GPU > CPURegisters: GPU > CPU 多寄存 ...

  6. Orchard运用 - 特定主题添加独立代码文件

    今天继续跟大家分享捣鼓Orchard的一些心得.其实有时一些问题或者Bugs还是蛮好解决的,主要看你采取哪种方式方法.比如有时我们为了扩展某些特性或功能,你可以搭建一个全新的模块来完成,如果临时的或简 ...

  7. 设置 IE 默认模式为 IE8

    <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />

  8. (转)实现AI中LOD优化技术

    LOD(Level Of Detail)是3D渲染中用到的概念,按照wikipedia上的翻译,可以译为“细节层次”,它是一种根据与观察点的距离,来减低物体或者模型的复杂度来提升渲染效率的优化技术,因 ...

  9. 【3】利用Word模板生成文档的总结

    阅读目录 Word二次开发概况 使用DsoFramer进行开发 使用Interop进行开发 打开.关闭和写入操作 批量替换文本 遍历段落替换文本 查找后逐个替换文本 结论 在各类应用系统开发中,和Wo ...

  10. HDU2089 ------不要62(数位dp)

    不要62 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...