suchen

Heim  >  Fragen und Antworten  >  Hauptteil

php - a、b、c、d四个txt,比较bcd这三个txt有多少是在a中,这4个文件大约250M.

  1. 规则如下:

自己测试过,设置了这两个ini_set('memory_limit', '-1');set_time_limit(0);,然后运行等了很久直接报500错误,求大神帮助!!!

怪我咯怪我咯2828 Tage vor464

Antworte allen(3)Ich werde antworten

  • 仅有的幸福

    仅有的幸福2017-05-16 13:09:52

    数据很多。估计数据库的话容易死。单纯比对的话 先写哥脚本把数据存到redis里。a表的缓存key 是a.0 a.1 a.2 什么的,b.000000036什么的 后两个规则保持一直。导入之后 确定 a的数据总条数

    写一个for循环

    $redis= new Redis();
    $Acount = 100000; //a的总数
    $num  = 1;
    $chkary = [1,2,3,4,5,6,7,8,9];//判断用的数组
    for ($i=0;$i<=$Acount;$i++){
        $data = $redis->get('a.' . $i);
       if( $redis->exists('b.'.$data)){
           //存在 code
       }
       $num++;
       if(in_array(($Acount/$num),$chkary)){
           sleep(1); //防止卡死
       }
    }

    Antwort
    0
  • 漂亮男人

    漂亮男人2017-05-16 13:09:52

    可以写个脚本把四个文本的内容都缓存到Redis的4个集合里面,然后求交集,这样速度挺快的,不知道允不允许这样做?

    Antwort
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-16 13:09:52

    500错误是内存不够了吧,可以执行若干行就释放一下无用内存

    Antwort
    0
  • StornierenAntwort