这篇文章主要介绍了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. Android开发利用Volley框架下载和缓存网络图片

    2013年Google I/O大会上推出了一种新的网络通信框架——Volley,Volley可是说是把AsyncHttpClient和Universal-Image-Loader的优点集于了一身,既可 ...

  2. infor系统日常问题解决笔记

    1.问题:结算单核准时候显示订单XXX的状态为已修改. 解决方法:在采购订单状态栏重新核准订单,采购订单状态不影响发票核准,结算后不允许再新增采购订单行,否则仍然会提示采购订单状态为已修改,且无法进行 ...

  3. Ant:Ant 入门

    背景 自从有了 Maven 以后,Ant 视乎就不流行了,不过 Ant 还是有其应用场景的,Ant 的思想比较简洁,如下: 一个 project 包含多个 target(类似成员方法). 一个 tar ...

  4. thymleaf th:text 和 th:utext 之间的区别

    1 th:text属性 可对表达式或变量求值,并将结果显示在其被包含的 html 标签体内替换原有html文本 文本连接:用“+”符号,若是变量表达式也可以用“|”符号 e.g. 若home.welc ...

  5. 总结学习 Python 的 14 张思维导图汇总

  6. 数学图形(1.25)cassini曲线

    通过这种曲线可以看到一种由8到0的过度 相关软件参见:数学图形可视化工具,使用自己定义语法的脚本代码生成数学图形.该软件免费开源.QQ交流群: 367752815 #http://www.mathcu ...

  7. 如何快速把安卓应用移植到BlackBerry 10上

    如何快速把安卓应用移植到BlackBerry 10上 相关博客: BlackBerry相关文档 http://developer.blackberry.com/android/documentatio ...

  8. TensorFlow进阶(五)---图与会话

    图与会话 图 tf.Graph TensorFlow计算,表示为数据流图.一个图包含一组表示 tf.Operation计算单位的对象和tf.Tensor表示操作之间流动的数据单元的对象.默认Graph ...

  9. 关于从SVN检出项目后,项目名称还是之前修改之前或者项目名称不对问题

    找到工作空间Workspaces/项目名称/.projet 修改文件中<name>项目名称</name>属性即可

  10. C++primer习题--第1章

    本文地址:http://www.cnblogs.com/archimedes/p/cpp-primer-chapter1-ans.html,转载请注明源地址. [习题 1.3] 编一个程序,在标准输出 ...