PHP中实现大文件去重的方法是什么
Admin 2022-07-07 群英技术资讯 1277 次浏览
今天就跟大家聊聊有关“PHP中实现大文件去重的方法是什么”的内容,可能很多人都不太了解,为了让大家认识和更进一步的了解,小编给大家总结了以下内容,希望这篇“PHP中实现大文件去重的方法是什么”文章能对大家有帮助。1.对一个大文件比如我的文件为
-rw-r--r-- 1 ubuntu ubuntu 9.1G Mar 1 17:53 2018-12-awk-uniq.txt
2.使用split命令切割成10个小文件
split -b 1000m 2018-12-awk-uniq.txt -b 按照字节切割 , 支持单位m和k

3.使用10个php进程读取文件 , 插入redis的有序集合结构中 , 重复的是插不进去的 ,因此可以起到去重的作用
<?php
$file=$argv[1];
//守护进程
umask(0); //把文件掩码清0
if (pcntl_fork() != 0){ //是父进程,父进程退出
exit();
}
posix_setsid();//设置新会话组长,脱离终端
if (pcntl_fork() != 0){ //是第一子进程,结束第一子进程
exit();
}
$start=memory_get_usage();
$redis=new Redis();
$redis->connect('127.0.0.1', 6379);
$handle = fopen("./{$file}", 'rb');
while (feof($handle)===false) {
$line=fgets($handle);
$email=str_replace("\n","",$line);
$redis->zAdd('emails', 1, $email);
}

4. redis中查看获取的数据
zcard emails 获取元素个数

取一定范围的元素 , 比如从100000开始 到 100100结束
zrange emails 100000 100100 WITHSCORES
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了PHP实现提取多维数组指定一列的方法,结合实例形式总结分析了PHP针对多维数组的遍历、转换、提取等相关操作技巧,需要的朋友可以参考下
在本篇文章里小编给大家整理的是一篇关于PHP学习的技巧和学习的要素总结内容,需要的朋友们可以参考下。
thinkPHP是PHP中的众多框架之一,这篇文章就主要给大家介绍TP5框架安全机制,通过实例来给大家分析防止sql注入和表单合法性检测的操作,感兴趣的朋友可以看一看。
程序员再开发过程中难免有些失误,或者由其他的原因也会造成错误的发生,那这时候我们就有必要了解一下PHP中有哪些错误类型以及有哪些错误级别了。
今天小编就为大家分享一篇关于PDO::errorInfo讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008