本篇文章主要内容是用PHP多个进程配合redis的有序集合实现大文件去重,感兴趣的朋友可以学习一下。

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的有序集合结构中 , 重复的是插不进去的 ,因此可以起到去重的作用

$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

想更高效学习PHP,请关注jquery中文网的PHP视频教程。

php读取文件和读取redis,PHP结合redis实现大文件去重相关推荐

  1. pandas使用to_feather函数将dataframe保存为feather文件(需要依赖pyarrow包)提升大文件读取效率、pandas使用read_feather函数读取feather文件

    pandas使用to_feather函数将dataframe保存为feather文件(需要依赖pyarrow包)提升大文件读取效率.pandas使用read_feather函数读取feather文件. ...

  2. php redis 集合返回多条,详解PHP多个进程配合redis的有序集合实现大文件去重

    1.对一个大文件比如我的文件为 -rw-r--r-- 1 ubuntu ubuntu 9.1G Mar 1 17:53 2018-12-awk-uniq.txt 2.使用split命令切割成10个小文 ...

  3. linux文件读写 c语言,Linux 下 C语言大文件读写(大于4G)

    以下的做法整理自论坛上的帖子. 如何create大文件 要大就非常大,1T吧. 有两种方法: 一.dd dd if=/dev/zero of=1T.img bs=1G seek=1024 count= ...

  4. 4种大文件传输工具和软件,用于共享大文件

    无论是个人还是与团队一起工作,大文件传输软件和网站都能协助提高工作效率.有效地管理工作内容.疫情原因有时我们不得不居家办公,在这种情况下可以分享文件的工具就显得尤为重要. 每个公司都需要一个文件传输软 ...

  5. php大文件读取excel分割,如何用phpspreadsheet来切割excel大文件(附代码)

    这篇文章给大家介绍的内容是关于如何用phpspreadsheet来切割excel大文件(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 背景: 利用phpspreadshee ...

  6. C++ minizip的简单使用,zip文件的创建、读取、修改、密码压缩、4G以上大文件压缩。

    兄弟姐妹们好,深夜党又来记录枯燥的编程生活了.今天给大家带来的是minizip库,一个解压和压缩文件的开源代码库,如题目所示的结构来介绍.你可以在下面的链接搜索到minizip库: http://ww ...

  7. linux下分割文件的方法,关于linux系统下分割大文件的方法

    <关于linux系统下分割大文件的方法>由会员分享,可在线阅读,更多相关<关于linux系统下分割大文件的方法(4页珍藏版)>请在人人文库网上搜索. 1.关于 linux系统下 ...

  8. h5如何上传文件二进制流_Hadoop如何将TB级大文件的上传性能优化上百倍?

    这篇文章,我们来看看,Hadoop的HDFS分布式文件系统的文件上传的性能优化. 首先,我们还是通过一张图来回顾一下文件上传的大概的原理. 由上图所示,文件上传的原理,其实说出来也简单. 比如有个TB ...

  9. c#如何上传大文件到服务器,asp.net(C#)中上传大文件的几中常见应用方法

    asp.net(C#)中上传大文件的几中常见应用方法 更新时间:2008年11月25日 10:05:46   作者: 最近博客需要做一个文件上下载功能,我从网上找了点资料,整理了下希望对大家有帮助! ...

  10. html5 上传超大文件,HTML5教程 如何拖拽上传大文件

    本篇教程探讨了HTML5教程 如何拖拽上传大文件,希望阅读本篇文章以后大家有所收获,帮助大家HTML5+CSS3从入门到精通 . < 前言: 大文件传输一直是技术上的一大难点.文件过大时,一些性 ...

最新文章

  1. SAP SD基础知识之信用范围数据维护
  2. redis internal【转】
  3. texlive安装需要多久_LaTex编译环境安装与使用
  4. 如何用最短时间搞定酷炫可视化大屏?这款工具值得一看
  5. Swoole安装报错No releases available for package pecl.php.net/swoole
  6. ubuntu vim命令
  7. ubuntu远程访问摄像头的设置
  8. Java中使用JNA实现全局监听Linux键盘事件
  9. 我的世界java手机版怎么调按键_博阅Likebook P6高配青春版使用评测
  10. Android AP模式下获取SSID/PASSWORD(反射机制
  11. 吴恩达深度学习——序列模型与注意力机制
  12. matlab ifft频率分辨率,matlab中关于FFT的使用(理解频率分辨率、补零问题)
  13. windows 的快捷截图
  14. 学以致用——英文姓名高词频分析-使用Excel制作高频词标签云(VBA)
  15. Prisma(一):初识
  16. Learn OpenCV之Rotation Matrix To Euler Angles
  17. jenkins 解决服务器远程启动jar方法无响应的方法
  18. 2018年ACM-ICPC亚洲区域赛(焦作)赛后总结
  19. 首款搭载HarmonyOS,分布式“智慧眼”!华为智选首款搭载HarmonyOS的智能摄像头正式发布...
  20. 【心情分享】联系博主

热门文章

  1. 生产订单总目标成本为0
  2. 一次性供应商不能用特别总账标准程序修改
  3. 检查 ABAP/4 程序用户的 权限
  4. windows+mysql+解压版_Windows操作系统安装MySQL解压版
  5. android flash闪退,Android全面停止Flash Adobe专注HTML5
  6. react页面数据过多怎么办_解决 React-Native 加载数据页面卡顿问题
  7. python递归出口怎么写_Python进阶 —— 递归
  8. python内置数据结构教程第四版答案_Python数据结构--内置数据结构
  9. 网络安全比赛理论答题(七)
  10. Python中shuffle() 函数的作用及用法