好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php中memcache读取数据批量写入mysql - php高级应用

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 ; //开源代码phpfensi测试数据           S( 'datadb' . $ksv ,null);             }         $addb  = M()->db(66,C( 'DB_WEB_AD' )); //批量写入 addall        $addb ->table( 'mj_ad_count' )->addall( $ress );       echo  M()->getLastSql();       }  

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

查看更多关于php中memcache读取数据批量写入mysql - php高级应用的详细内容...

  阅读:40次