saveDB(); } private function saveDB(){ $result = $this->compactData(); if(!$result){ return ; } foreach ($result as $key=>$v){ $table = sprintf('record_records%s',$key); DB::connection('read_record_mysql')->table($table)->insert($v); } } private function getRecord(){ $length = Redis::Llen('ReadRecordStats'); if(!$length) return []; $count = ceil($length/200); $result = []; for ($i=0;$i <$count;$i++){ $start = $i*200; $end = $start+199; $result[] = Redis::Lrange('ReadRecordStats',$start,$end); } Redis::del('ReadRecordStats'); return $result; } private function compactData(){ $data = $this->getRecord(); if(!$data){ return []; } $result = []; foreach ($data as $item){ foreach ($item as $v){ $record = json_decode($v,1); $table = $record['uid']%2048; $result[$table][] = $record; } } return $result; } }