一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - 詳解PHP多個進程配合redis的有序集合實現大文件去重

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

2019-06-05 11:15陶士涵的菜地服務器之家 PHP教程

這篇文章主要介紹了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

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

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);
}

 

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

4. redis中查看獲取的數據

zcard emails 獲取元素個數

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

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

zrange emails 100000 100100 WITHSCORES

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美香蕉人人人人人人爱 | 国产精品夜色视频一级区 | 亚洲国产AV一区二区三区四区 | 紧身裙女教师波多野结衣 | 东北老妇露脸xxxxx | 国产福利片在线 易阳 | 秋葵丝瓜茄子草莓榴莲樱桃 | 香蕉免费高清完整 | 国内在线播放 | 艾秋麻豆果冻传媒老狼仙踪林 | 四虎影视紧急入口地址大全 | 欧美撒尿屁股嘘嘘撒尿 | 亚洲欧美成人中文在线网站 | 2019男人天堂 | 暖暖的免费观看高清视频韩国 | 欧美人禽杂交在线视频 | 日本人欧美xx | 精品无码久久久久久久久 | 青青在线观看 | 教师波多野结衣在线播放 | 欧美一区二区三区高清不卡tv | 国内精品久久久久久不卡影院 | japanese日本护士 | 色老板美国在线观看 | 婷婷伊人综合亚洲综合网 | 逼逼毛片| 亚洲不卡高清免v无码屋 | 午夜福到在线2019 | 日本乱中文字幕系列在线观看 | 成年人福利 | 免费精品国产在线观看 | 色综合视频一区二区三区 | 猛男强攻变sao货 | 骚虎最新网址 | 69av免费视频 | a亚洲天堂 | 亚洲 无码 制服 日韩 | 国产精品中文字幕 | 免费片在线观看高清 | 男人的j伸到女人的屁股眼 男人吃奶动态图 | 99rv精品视频在线播放 |