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();
}
php从memcache读取数据再批量写入mysql的方法的更多相关文章
- 从Excel中读取数据并批量写入MySQL数据库(基于MySQLdb)
一.Excel内容如下,现在需要将Excel中的数据全部写入的MySQL数据库中: 二.连接MySQL的第三方库使用的是“MySQLdb”,代码如下: # -*- coding:utf-8 -*-im ...
- 从Excel中读取数据并批量写入MySQL数据库(基于pymysql)
一.Excel内容时这样的: 二.最初的代码是这样的: # -*- coding:utf-8 -*-import pymysqlfrom xlrd import open_workbook class ...
- 批量插入数据, 将DataTable里的数据批量写入数据库的方法
大量数据导入操作, 也就是直接将DataTable里的内容写入到数据库 通用方法: 拼接Insert语句, 好土鳖 1. MS Sql Server: 使用SqlBulkCopy 2. MySql ...
- 对大数据的批量导入MySQL数据库
自己的库里有索引在用insert导入数据时会变慢很多 使用事务+批量导入 可以配置使用spring+mybatis整合的方式关闭自动提交事务(地址),选择批量导入每一百条导入使用list存储值传入到m ...
- python 读取本地文件批量插入mysql
Uin_phone.txt 本地文件内容 有1000条,这里只是展示前几条,供参考 133584752 133584759 133584764 133584773 133584775 13358477 ...
- Javascript(JS)对Cookie的读取、删除、写入操作帮助方法
var CookieUtils = { get: function (name) { var cookieName = encodeURIComponent(name) + '=', cookieSt ...
- Spark操作MySQL,Hive并写入MySQL数据库
最近一个项目,需要操作近70亿数据进行统计分析.如果存入MySQL,很难读取如此大的数据,即使使用搜索引擎,也是非常慢.经过调研决定借助我们公司大数据平台结合Spark技术完成这么大数据量的统计分析. ...
- c#WebApi使用form表单提交excel,实现批量写入数据库
思路:用户点击下载模板按钮,获取到excel模板,然后向里面填写数据保存.from表单提交的时候选择保存好的excel,实现数据的批量导入过程 先把模板放在服务器的项目目录下面:如 模板我一般放在:F ...
- Scrapy爬取豆瓣图书数据并写入MySQL
项目地址 BookSpider 介绍 本篇涉及的内容主要是获取分类下的所有图书数据,并写入MySQL 准备 Python3.6.Scrapy.Twisted.MySQLdb等 演示 代码 一.创建项目 ...
随机推荐
- Android开发利用Volley框架下载和缓存网络图片
2013年Google I/O大会上推出了一种新的网络通信框架——Volley,Volley可是说是把AsyncHttpClient和Universal-Image-Loader的优点集于了一身,既可 ...
- infor系统日常问题解决笔记
1.问题:结算单核准时候显示订单XXX的状态为已修改. 解决方法:在采购订单状态栏重新核准订单,采购订单状态不影响发票核准,结算后不允许再新增采购订单行,否则仍然会提示采购订单状态为已修改,且无法进行 ...
- Ant:Ant 入门
背景 自从有了 Maven 以后,Ant 视乎就不流行了,不过 Ant 还是有其应用场景的,Ant 的思想比较简洁,如下: 一个 project 包含多个 target(类似成员方法). 一个 tar ...
- thymleaf th:text 和 th:utext 之间的区别
1 th:text属性 可对表达式或变量求值,并将结果显示在其被包含的 html 标签体内替换原有html文本 文本连接:用“+”符号,若是变量表达式也可以用“|”符号 e.g. 若home.welc ...
- 总结学习 Python 的 14 张思维导图汇总
- 数学图形(1.25)cassini曲线
通过这种曲线可以看到一种由8到0的过度 相关软件参见:数学图形可视化工具,使用自己定义语法的脚本代码生成数学图形.该软件免费开源.QQ交流群: 367752815 #http://www.mathcu ...
- 如何快速把安卓应用移植到BlackBerry 10上
如何快速把安卓应用移植到BlackBerry 10上 相关博客: BlackBerry相关文档 http://developer.blackberry.com/android/documentatio ...
- TensorFlow进阶(五)---图与会话
图与会话 图 tf.Graph TensorFlow计算,表示为数据流图.一个图包含一组表示 tf.Operation计算单位的对象和tf.Tensor表示操作之间流动的数据单元的对象.默认Graph ...
- 关于从SVN检出项目后,项目名称还是之前修改之前或者项目名称不对问题
找到工作空间Workspaces/项目名称/.projet 修改文件中<name>项目名称</name>属性即可
- C++primer习题--第1章
本文地址:http://www.cnblogs.com/archimedes/p/cpp-primer-chapter1-ans.html,转载请注明源地址. [习题 1.3] 编一个程序,在标准输出 ...