• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php从memcache读取数据再批量写入mysql的方法_PHP

php 搞代码 4年前 (2022-01-25) 8次浏览 已收录 0个评论

本文实例讲述了php从memcache读取数据再批量写入mysql的方法。分享给大家供大家参考。具体分析如下:

用 Memcache 可以缓解 php和数据库压力下面代码是解决高负载下数据库写入瓶颈问题,遇到最实用的:写入ip pv uv的时候,用户达到每分钟几万访问量,要记录这些数据,实时写入数据库必定奔溃.

用以下技术就能解决,还有如用户注册,同一时间断内,大量用户注册,可以缓存后一次性写入到数据库,代码如下:

public function cldata(){ <br />$memcache_obj = new Memcache; <br />    $memcache_obj->connect('127.0.0.1', '11211'); <br />    $all_items = $memcache_obj->getExtendedStats('items'); <br />    foreach($all_items as $option=>$vall){ <br />        if (isset($all_items[$option]['items'])) { <br />                 $items = $all_items[$option]['items']; <br />                 foreach ($items as $number => $item) { <br />                       $str    = $memcache_obj->getExtendedStats('cachedump', $number, 0); <br />                       $line   = $str[$option]; <br />if(is_array($line) && count($line) > 0){ <br />    foreach($line as $key => $value) { <br />        $keys[] = $key; <br />} <br />} <br />} <br />} <br />} <br /> <br />    dump(count($keys));//获取到key <br />    if(count($keys)>50){//要写入的数据条数       <br />        $end=50; <br />    }else{ <br />        $end=count($keys); <br />    } <br />      <br />    for($i=0;$i<=$end;$i++){ <br />        if(!strstr($keys[$i],'datadb')) continue;       <br />        $ksv = str_replace('datadb','',$keys[$i]); <br />          <br />    /*$logdata = unserialize(S('login'.$ksv));//登录写入 <br />    if(is_array($logdata)){ <br />        $this->addsuidinlogin($logdata[0],$logdata[1],$logdata[2],1);        <br />    }   */ <br />          <br />        /*$sdata = unserialize(S('regadd'.$ksv));//注册写入 <br />    if(is_array($sdata)){ <br />        $this->baiduad($sdata[0],$sdata[1],$sdata[2],$sdata[3],$sdata[4],1);     <br />    } <br />    */ <br />        $regdata = unserialize(S('datadb'.$ksv));       <br />        $ress[]=$regdata;<br />        S('datadb'.$ksv,null); <br />      <br />    }   <br />    $addb = M()->db(66,C('DB_WEB_AD'));//批量写入 addall <br />    $addb->table('mj_a<mark style="color:transparent">本%文来源gaodaimacom搞#^代%!码网@</mark>搞代gaodaima码d_count')->addall($ress); <br />    echo M()->getLastSql();    <br />}

补充:可以使用的工具如:memadmin 还有memadmin 文档.

希望本文所述对大家的php程序设计有所帮助。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php从memcache读取数据再批量写入mysql的方法_PHP
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址