It can be solved with the following techniques.
Also like user registration, the same time broken, a large number of users registered. can be cached and written to the database at once.
The code is as follows:
The code is as follows |
Copy Code |
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));//Get to Key if (count ($keys) >50) {//number of data bars to write $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))//Login Write if (Is_array ($logdata)) { $this->addsuidinlogin ($logdata [0], $logdata [1], $logdata [2],1); } */
/* $sdata = unserialize (S (' Regadd '. $ksv));//Register Write 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 '))//Bulk Write AddAll $addb->table (' Mj_ad_count ')->addall ($ress); Echo M ()->getlastsql ();
} |
Report:
Available tools such as: memadmin and memadmin documentation.