国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

詳解PHP多個進程配合redis的有序集合實現大文件去重

2024-05-05 00:07:10
字體:
來源:轉載
供稿:網友

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

PHP,進程,redis,有序集合,文件去重

3.使用10個php進程讀取文件 , 插入redis的有序集合結構中 , 重復的是插不進去的 ,因此可以起到去重的作用

<?php $file=$argv[1];//守護進程umask(0); //把文件掩碼清0if (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);}

 

PHP,進程,redis,有序集合,文件去重

4. redis中查看獲取的數據

zcard emails 獲取元素個數

PHP,進程,redis,有序集合,文件去重

取一定范圍的元素 , 比如從100000開始 到 100100結束

zrange emails 100000 100100 WITHSCORES

以上所述是小編給大家介紹的PHP多個進程配合redis的有序集合實現大文件去重詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 玉龙| 平阴县| 河源市| 家居| 长寿区| 治多县| 满洲里市| 富川| 正阳县| 乌鲁木齐县| 疏附县| 海林市| 花垣县| 疏附县| 苗栗市| 治多县| 大关县| 丹棱县| 开阳县| 大洼县| 邛崃市| 余干县| 贞丰县| 南和县| 海安县| 马尔康县| 友谊县| 苍山县| 刚察县| 宾川县| 陵水| 柳河县| 若羌县| 基隆市| 平度市| 彭州市| 霍州市| 鄂托克前旗| 会宁县| 富川| 绥芬河市|