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与Unity交互研究
转载请注明出处:http://blog.csdn.net/crazy1235/article/details/46733221 Android与Unity交互研究 unity与android交互的由来 ...
- TurboLinux11system»adjtimex简介
Adjtimex介绍 linux 系统有两个时钟:一个是由主板电池驱动的“Real Time Clock”也叫做RTC或者叫CMOS时钟,硬件时钟.当操作系统关机的时候,用这个来记录时间,但是对于运行 ...
- android基础知识普及
1.密度问题及相互转换 测试机 philips w732 480X800 density 1.5 scaledDensity 1.6500001 通过 context.getResources().g ...
- jeecms运行出现 Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.解决
在/WEB-INF/config/application-context.xml中添加红色字体内容: <bean id="dataSource" class="co ...
- [转]awk使用手册
awk 手册 简体中文版由bones7456 (bones7456@gmail.com)整理. 原文:应该是 http://phi.sinica.edu.tw/aspac/reports/94/940 ...
- Windows MongoDB安装配置
1.下载 官网:http://www.runoob.com/mongodb/mongodb-window-install.html 由于是在window下,所以我下载的是mongodb-win32-x ...
- boost.asio学习笔记一、linux下boost库的安装
欢迎转载,转载请注明原文地址:http://blog.csdn.net/majianfei1023/article/details/46761029 学习开源库第一步就是编译安装好库,然后执行成功一个 ...
- PHP的错误处理方式(开发和上线)
对于PHP开发人员来说,一旦某个产品投入使用.应该马上将 display_errors选项关闭.以免由于这些错误所透露的路径.数据库连接.数据表等信息而遭到黑客攻击. 可是.不论什么一个产品在投入使用 ...
- LIBSVM与LIBLINEAR
对于多分类问题以及核函数的选取,以下经验规则可以借鉴: 如果如果特征数远远大于样本数的情况下,使用线性核就可以了. 如果特征数和样本数都很大,例如文档分类,一般使用线性核, LIBLINEAR比LIB ...
- 杭电 HDU 1031 Design T-Shirt
Design T-Shirt Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) T ...