php读取文件和读取redis,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个小文件
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实现大文件去重相关推荐
- pandas使用to_feather函数将dataframe保存为feather文件(需要依赖pyarrow包)提升大文件读取效率、pandas使用read_feather函数读取feather文件
pandas使用to_feather函数将dataframe保存为feather文件(需要依赖pyarrow包)提升大文件读取效率.pandas使用read_feather函数读取feather文件. ...
- 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个小文 ...
- linux文件读写 c语言,Linux 下 C语言大文件读写(大于4G)
以下的做法整理自论坛上的帖子. 如何create大文件 要大就非常大,1T吧. 有两种方法: 一.dd dd if=/dev/zero of=1T.img bs=1G seek=1024 count= ...
- 4种大文件传输工具和软件,用于共享大文件
无论是个人还是与团队一起工作,大文件传输软件和网站都能协助提高工作效率.有效地管理工作内容.疫情原因有时我们不得不居家办公,在这种情况下可以分享文件的工具就显得尤为重要. 每个公司都需要一个文件传输软 ...
- php大文件读取excel分割,如何用phpspreadsheet来切割excel大文件(附代码)
这篇文章给大家介绍的内容是关于如何用phpspreadsheet来切割excel大文件(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 背景: 利用phpspreadshee ...
- C++ minizip的简单使用,zip文件的创建、读取、修改、密码压缩、4G以上大文件压缩。
兄弟姐妹们好,深夜党又来记录枯燥的编程生活了.今天给大家带来的是minizip库,一个解压和压缩文件的开源代码库,如题目所示的结构来介绍.你可以在下面的链接搜索到minizip库: http://ww ...
- linux下分割文件的方法,关于linux系统下分割大文件的方法
<关于linux系统下分割大文件的方法>由会员分享,可在线阅读,更多相关<关于linux系统下分割大文件的方法(4页珍藏版)>请在人人文库网上搜索. 1.关于 linux系统下 ...
- h5如何上传文件二进制流_Hadoop如何将TB级大文件的上传性能优化上百倍?
这篇文章,我们来看看,Hadoop的HDFS分布式文件系统的文件上传的性能优化. 首先,我们还是通过一张图来回顾一下文件上传的大概的原理. 由上图所示,文件上传的原理,其实说出来也简单. 比如有个TB ...
- c#如何上传大文件到服务器,asp.net(C#)中上传大文件的几中常见应用方法
asp.net(C#)中上传大文件的几中常见应用方法 更新时间:2008年11月25日 10:05:46 作者: 最近博客需要做一个文件上下载功能,我从网上找了点资料,整理了下希望对大家有帮助! ...
- html5 上传超大文件,HTML5教程 如何拖拽上传大文件
本篇教程探讨了HTML5教程 如何拖拽上传大文件,希望阅读本篇文章以后大家有所收获,帮助大家HTML5+CSS3从入门到精通 . < 前言: 大文件传输一直是技术上的一大难点.文件过大时,一些性 ...
最新文章
- SAP SD基础知识之信用范围数据维护
- redis internal【转】
- texlive安装需要多久_LaTex编译环境安装与使用
- 如何用最短时间搞定酷炫可视化大屏?这款工具值得一看
- Swoole安装报错No releases available for package pecl.php.net/swoole
- ubuntu vim命令
- ubuntu远程访问摄像头的设置
- Java中使用JNA实现全局监听Linux键盘事件
- 我的世界java手机版怎么调按键_博阅Likebook P6高配青春版使用评测
- Android AP模式下获取SSID/PASSWORD(反射机制
- 吴恩达深度学习——序列模型与注意力机制
- matlab ifft频率分辨率,matlab中关于FFT的使用(理解频率分辨率、补零问题)
- windows 的快捷截图
- 学以致用——英文姓名高词频分析-使用Excel制作高频词标签云(VBA)
- Prisma(一):初识
- Learn OpenCV之Rotation Matrix To Euler Angles
- jenkins 解决服务器远程启动jar方法无响应的方法
- 2018年ACM-ICPC亚洲区域赛(焦作)赛后总结
- 首款搭载HarmonyOS,分布式“智慧眼”!华为智选首款搭载HarmonyOS的智能摄像头正式发布...
- 【心情分享】联系博主
热门文章
- 生产订单总目标成本为0
- 一次性供应商不能用特别总账标准程序修改
- 检查 ABAP/4 程序用户的 权限
- windows+mysql+解压版_Windows操作系统安装MySQL解压版
- android flash闪退,Android全面停止Flash Adobe专注HTML5
- react页面数据过多怎么办_解决 React-Native 加载数据页面卡顿问题
- python递归出口怎么写_Python进阶 —— 递归
- python内置数据结构教程第四版答案_Python数据结构--内置数据结构
- 网络安全比赛理论答题(七)
- Python中shuffle() 函数的作用及用法