黄a在线观看-黄a在线-黄a大片-黄色片在线看-黄色毛片免费-黄色大片网站

您的位置:首頁技術(shù)文章
文章詳情頁

詳解PHP優(yōu)化巨量關(guān)鍵詞的匹配

瀏覽:24日期:2022-09-07 11:17:27
目錄問題由來原始 - grep設(shè)計代碼進化 - 正則設(shè)計正則小坑代碼覺醒 - 拆詞設(shè)計代碼結(jié)果終級 - Trie樹trie樹設(shè)計代碼結(jié)果他徑 - 多進程設(shè)計結(jié)果總結(jié)問題由來

前些天工作中遇到一個問題:

有 60萬 條短消息記錄日志,每條約 50 字,5萬 關(guān)鍵詞,長度 2-8 字,絕大部分為中文。要求將這 60萬 條記錄中包含的關(guān)鍵詞全部提取出來并統(tǒng)計各關(guān)鍵詞的命中次數(shù)。

原始 - grep設(shè)計

一開始接到任務(wù)的時候,我的小心思立刻轉(zhuǎn)了起來,日志 + 關(guān)鍵詞 + 統(tǒng)計,我沒有想到自己寫代碼實現(xiàn),而是首先想到了 linux 下常用的日志統(tǒng)計命令 grep。

grep命令的用法不再多提,使用 grep ’keyword’ | wc -l 可以很方便地進行統(tǒng)計關(guān)鍵詞命中的信息條數(shù),而php的 exec() 函數(shù)允許我們直接調(diào)用 linux 的 shell 命令,雖然這樣執(zhí)行危險命令時會有安全隱患。

代碼

上偽代碼:

foreach ($word_list as $keyword) { $count = intval(exec('grep ’{$keyword}’ file.log | wc -l')); record($keyword, $count);}

在一臺老機器上跑的,話說老機器效率真的差,跑了6小時。估計最新機器2-3小時吧,后面的優(yōu)化都使用的新機器,而且需求又有變動,正文才剛剛開始。

原始,原始在想法和方法。

進化 - 正則設(shè)計

交了差之后,第二天產(chǎn)品又提出了新的想法,說以后想把某數(shù)據(jù)源接入進來,消息以數(shù)據(jù)流的形式傳遞,而不再是文件了。而且還要求了消息統(tǒng)計的實時性,一下把我想把數(shù)據(jù)寫到文件再統(tǒng)計的想法也推翻了,為了方案的可擴展性,現(xiàn)在的統(tǒng)計對象不再是一個整體,而是要考慮拿n個單條的消息來匹配了。

這時,略懵的我只好祭出了最傳統(tǒng)的工具- 正則。正則的實現(xiàn)也不難,各個語言也都封裝好了正則匹配函數(shù),重點是模式(pattern)的構(gòu)建。

當然這里的模式構(gòu)建也不難,/keyword1|keword2|.../,用|將關(guān)鍵詞連接起來即可。

正則小坑

這里介紹兩個使用中遇到的小坑:

1.正則模式長度太長導致匹配失敗:

PHP 的正則有回溯限制,以防止消耗掉所有的進程可用堆棧, 最終導致 php 崩潰。太長的模式會導致 PHP 檢測到回溯過多,中斷匹配,經(jīng)測試默認設(shè)置時最大模式長度為 32000 字節(jié) 左右。

php.ini 內(nèi) pcre.backtrack_limit 參數(shù)為最大回溯次數(shù)限制,默認值為 1000000,修改或php.ini 或在腳本開始時使用ini_set(‘pcre.backtrack_limit’, n); 將其設(shè)置為一個較大的數(shù)可以提高單次匹配最大模式長度。當然也可以將關(guān)鍵詞分批統(tǒng)計(我用了這個=_=)。

2.模式中含有特殊字符導致大量warning:

匹配過程中發(fā)現(xiàn) PHP 報出大量 warning:unknown modifier 亂碼,仔細檢查發(fā)現(xiàn)關(guān)鍵詞中有/字符,可以使用preg_quote()函數(shù)過濾一遍關(guān)鍵詞即可。

代碼

上偽代碼:

$end = 0;$step = 1500;$pattern = array();// 先將pattern 拆成多個小塊while ($end < count($word_list)) { $tmp_arr = array_slice($word_list, $end, $step); $end += $step; $item = implode(’|’, $tmp_arr); $pattern[] = preg_quote($item);}$content = file_get_contents($log_file);$lines = explode('n', $content);foreach ($lines as $line) { // 使用各小塊pattern分別匹配 for ($i = 0; $i < count($pattern); $i++) {preg_match_all('/{$pattern[$i]}/', $line, $match); } $match = array_unique(array_filter($match)); dealResult($match);}

為了完成任務(wù),硬著頭皮進程跑了一夜。當?shù)诙煳野l(fā)現(xiàn)跑了近十個小時的時候內(nèi)心是崩潰的。。。太慢了,完全達不到使用要求,這時,我已經(jīng)開始考慮改換方法了。

當產(chǎn)品又改換了關(guān)鍵詞策略,替換了一些關(guān)鍵詞,要求重新運行一遍,并表示還會繼續(xù)優(yōu)化關(guān)鍵詞時,我完全否定了現(xiàn)有方案。絕對不能用關(guān)鍵詞去匹配信息,這樣一條一條用全部關(guān)鍵詞去匹配,效率實在是不可忍受。

進化,需求和實現(xiàn)的進化

覺醒 - 拆詞設(shè)計

我終于開始意識到要拿信息去關(guān)鍵詞里對比。如果我用關(guān)鍵詞為鍵建立一個 hash 表,用信息里的詞去 hash 表里查找,如果查到就認為匹配命中,這樣不是能達到 O(1) 的效率了么?

可是一條短消息,我如何把它拆分為剛好的詞去匹配呢,分詞?分詞也是需要時間的,而且我的關(guān)鍵詞都是些無語義的詞,構(gòu)建詞庫、使用分詞工具又是很大的問題,最終我想到 拆詞。

為什么叫拆詞呢,我考慮以蠻力將一句話拆分為所有可能的詞。如我是好人就可以拆成 我是、是好、好人、我是好、是好人、我是好人等詞,我的關(guān)鍵詞長度為 2-8,所以可拆詞個數(shù)會隨著句子長度迅速增加。不過,可以用標點符號、空格、語氣詞(如的、是等)作為分隔將句子拆成小短語再進行拆詞,會大大減少拆出的詞量。

其實分詞并沒有完整實現(xiàn)就被后一個方法替代了,只是一個極具實現(xiàn)可能的構(gòu)想,寫這篇文章時用偽代碼實現(xiàn)了一下,供大家參考,即使不用在匹配關(guān)鍵詞,用在其他地方也是有可能的。

代碼

$str_list = getStrList($msg);foreach ($str_list as $str) { $keywords = getKeywords($str); foreach ($keywords as $keyword) {// 直接通過PHP數(shù)組的哈希實現(xiàn)來進行快速查找if (isset($word_list[$keyword])) { record($keyword);} }}/** * 從消息中拆出短句子 */function getStrList($msg) { $str_list = array(); $seperators = array(’,’, ’。’, ’的’, ...); $words = preg_split(’/(?<!^)(?!$)/u’, $msg); $str = array(); foreach ($words as $word) {if (in_array($word, $seperators)) { $str_list[] = $str; $str = array();} else { $str[] = $word;} } return array_filter($str_list);}/** * 從短句中取出各個詞 */function getKeywords($str) { if (count($str) < 2) {return array(); } $keywords = array(); for ($i = 0; $i < count($str); $i++) {for ($j = 2; $j < 9; $j++) { $keywords[] = array_slice($str, $i, $j); // todo 限制一下不要超過數(shù)組最大長度} } return $keywords;}結(jié)果

我們知道一個 utf-8 的中文字符要占用三個字節(jié),為了拆分出包含中英文的每一個字符,使用簡單的 split() 函數(shù)是做不到的。

這里使用了 preg_split(’/(?<!^)(?!$)/u’, $msg) 是通過正則匹配到兩個字符之間的’’來將兩個字符拆散,而兩個括號里的 (?<!^)(?!$) 是分別用來限定捕獲組不是第一個,也不是最后一個(不使用這兩個捕獲組限定符也是可以的,直接使用//作為模式會導致拆分結(jié)果在前后各多出一個空字符串項)。 捕獲組的概念和用法可見我之前的博客 PHP正則中的捕獲組與非捕獲組

由于沒有真正實現(xiàn),也不知道效率如何。估算每個短句長度約為 10 字左右時,每條短消息約50字左右,會拆出 200 個詞。雖然它會拆出很多無意義的詞,但我相信效率絕不會低,由于其 hash 的高效率,甚至我覺得會可能比終極方法效率要高。

最終沒有使用此方案是因為它對句子要求較高,拆詞時的分隔符也不好確定,最重要的是它不夠優(yōu)雅。。。這個方法我不太想去實現(xiàn),統(tǒng)計標識和語氣詞等活顯得略為笨重,而且感覺拆出很多無意義的詞感覺效率浪費得厲害。

覺醒,意識和思路的覺醒

終級 - Trie樹trie樹

于是我又來找谷哥幫忙了,搜索大量數(shù)據(jù)匹配,有人提出了 使用 trie 樹的方式,沒想到剛學習的 trie 樹的就派上了用場。我上上篇文章剛介紹了 trie 樹,在空間索引 - 四叉樹 里字典樹這一小節(jié),大家可以查看一下。

當然也為懶人復制了一遍我當時的解釋(看過的可以跳過這一小節(jié)了)。

字典樹,又稱前綴樹或 trie 樹,是一種有序樹,用于保存關(guān)聯(lián)數(shù)組,其中的鍵通常是字符串。與二叉查找樹不同,鍵不是直接保存在節(jié)點中,而是由節(jié)點在樹中的位置決定。一個節(jié)點的所有子孫都有相同的前綴,也就是這個節(jié)點對應(yīng)的字符串,而根節(jié)點對應(yīng)空字符串。

我們可以類比字典的特性:我們在字典里通過拼音查找晃(huang)這個字的時候,我們會發(fā)現(xiàn)它的附近都是讀音為huang的,可能是聲調(diào)有區(qū)別,再往前翻,我們會看到讀音前綴為huan的字,再往前,是讀音前綴為hua的字... 取它們的讀音前綴分別為 h qu hua huan huang。我們在查找時,根據(jù) abc...xyz 的順序找到h前綴的部分,再根據(jù) ha he hu找到 hu 前綴的部分...最后找到 huang,我們會發(fā)現(xiàn),越往后其讀音前綴越長,查找也越精確,這種類似于字典的樹結(jié)構(gòu)就是字典樹,也是前綴樹。

設(shè)計

那么 trie 樹怎么實現(xiàn)關(guān)鍵字的匹配呢? 這里以一幅圖來講解 trie 樹匹配的過程。

詳解PHP優(yōu)化巨量關(guān)鍵詞的匹配

其中要點:

構(gòu)造trie樹

將關(guān)鍵詞用上面介紹的preg_split()函數(shù)拆分為單個字符。如科學家就拆分為科、學、家三個字符。在最后一個字符后添加一個特殊字符 `,此字符作為一個關(guān)鍵詞的結(jié)尾(圖中的粉紅三角),以此字符來標識查到了一個關(guān)鍵詞(不然,我們不知道匹配到科、學兩個字符時算不算匹配成功)。檢查根部是否有第一個字符(科)節(jié)點,如果有了此節(jié)點,到步驟4。 如果還沒有,在根部添加值為科的節(jié)點。依次檢查并添加學、家 兩個節(jié)點。在結(jié)尾添加`節(jié)點,并繼續(xù)下一個關(guān)鍵詞的插入。

匹配

然后我們以 這位科學家很了不起!為例來發(fā)起匹配。

首先我們將句子拆分為單個字符 這、位、...; 從根查詢第一個字符這,并沒有以這個字符開頭的關(guān)鍵詞,將字符“指針”向后移,直到找到根下有的字符節(jié)點科; 接著在節(jié)點科下尋找值為 學節(jié)點,找到時,結(jié)果子樹的深度已經(jīng)到了2,關(guān)鍵詞的最短長度是2,此時需要在學結(jié)點下查找是否有`,找到意味著匹配成功,返回關(guān)鍵詞,并將字符“指針”后移,如果找不到則繼續(xù)在此結(jié)點下尋找下一個字符。 如此遍歷,直到最后,返回所有匹配結(jié)果。代碼

完整代碼我已經(jīng)放到了GitHub上:Trie-GitHub-zhenbianshu,這里放上核心。

首先是數(shù)據(jù)結(jié)構(gòu)樹結(jié)點的設(shè)計,當然它也是重中之重:

$node = array( ’depth’ => $depth, // 深度,用以判斷已命中的字數(shù) ’next’ => array($val => $node, // 這里借用php數(shù)組的哈希底層實現(xiàn),加速子結(jié)點的查找... ),);

然后是樹構(gòu)建時子結(jié)點的插入:

// 這里要往節(jié)點內(nèi)插入子節(jié)點,所以將它以引用方式傳入private function insert(&$node, $words) { if (empty($words)) { return;}$word = array_shift($words);// 如果子結(jié)點已存在,向子結(jié)點內(nèi)繼續(xù)插入if (isset($node[’next’][$word])) { $this->insert($node[’next’][$word], $words);} else { // 子結(jié)點不存在時,構(gòu)造子結(jié)點插入結(jié)果 $tmp_node = array(’depth’ => $node[’depth’] + 1,’next’ => array(), ); $node[’next’][$word] = $tmp_node; $this->insert($node[’next’][$word], $words);} }

最后是查詢時的操作:

// 這里也可以使用一個全局變量來存儲已匹配到的字符,以替換$matchedprivate function query($node, $words, &$matched) {$word = array_shift($words);if (isset($node[’next’][$word])) { // 如果存在對應(yīng)子結(jié)點,將它放到結(jié)果集里 array_push($matched, $word); // 深度到達最短關(guān)鍵詞時,即可判斷是否到詞尾了 if ($node[’next’] > 1 && isset($node[’next’][$word][’next’][’`’])) {return true; } return $this->query($node[’next’][$word], $words, $matched);} else { $matched = array(); return false;} }結(jié)果

結(jié)果當然是喜人的,如此匹配,處理一千條數(shù)據(jù)只需要3秒左右。找了 Java 的同事試了下,Java 處理一千條數(shù)據(jù)只需要1秒。

這里來分析一下為什么這種方法這么快:

正則匹配:要用所有的關(guān)鍵詞去信息里匹配匹配次數(shù)是 key_len * msg_len,當然正則會進行優(yōu)化,但基礎(chǔ)這樣,再優(yōu)化效率可想而知。 而 trie 樹效率最差的時候是 msg_len * 9(最長關(guān)鍵詞長度 + 1個特殊字符)次 hash 查找,即最長關(guān)鍵詞類似 AAA,信息內(nèi)容為 AAA...時,而這種情況的概率可想而知。

至此方法的優(yōu)化到此結(jié)束,從每秒鐘匹配 10 個,到 300 個,30 倍的性能提升還是巨大的。

終級,卻不一定是終極

他徑 - 多進程設(shè)計

匹配方法的優(yōu)化結(jié)束了,開頭說的優(yōu)化到十分鐘以內(nèi)的目標還沒有實現(xiàn),這時候就要考慮一些其他方法了。

我們一提到高效,必然想到的是 并發(fā),那么接下來的優(yōu)化就要從并發(fā)說起。PHP 是單線程的(雖然也有不好用的多線程擴展),這沒啥好的解決辦法,并發(fā)方向只好從多進程進行了。

那么一個日志文件,用多個進程怎么讀呢?這里當然也提供幾個方案:

進程內(nèi)添加日志行數(shù)計數(shù)器,各個進程支持傳入?yún)?shù) n,進程只處理第 行數(shù) % n = n 的日志,這種 hack 的反向分布式我已經(jīng)用得很熟練了,哈哈。

這種方法需要進程傳參數(shù),還需要每個進程都分配讀取整個日志的的內(nèi)存,而且也不夠優(yōu)雅。

使用 linux 的 split -l n file.log output_pre 命令,將文件分割為每份為 n 行的文件,然后用多個進程去讀取多個文件。

此方法的缺點就是不靈活,想換一下進程數(shù)時需要重新切分文件。

使用 Redis 的 list 隊列臨時存儲日志,開啟多個進程消費隊列。

此方法需要另外向 Redis 內(nèi)寫入數(shù)據(jù),多了一個步驟,但它擴展靈活,而且代碼簡單優(yōu)雅。

最終使用了第三種方式來進行。

結(jié)果

這種方式雖然也會有瓶頸,最后應(yīng)該會落在 Redis 的網(wǎng)絡(luò) IO 上。我也沒有閑心開 n 個進程去挑戰(zhàn)公司 Redis 的性能,運行 10 個進程三四分鐘就完成了統(tǒng)計。即使再加上 Redis 寫入的耗時,10分鐘以內(nèi)也妥妥的。

一開始產(chǎn)品對匹配速度已經(jīng)有了小時級的定位了,當我 10 分鐘就拿出了新的日志匹配結(jié)果,看到產(chǎn)品驚訝的表情,心里也是略爽的,哈哈~

他徑,也能幫你走得更遠

總結(jié)

解決問題的方法有很多種,我認為在解決各種問題之前,要了解很多種知識,即使只知道它的作用。就像一個工具架,你要先把工具盡量擺得多,才能在遇到問題時選取一個最合適的。接著當然要把這些工具用是純熟了,這樣才能使用它們?nèi)ソ鉀Q一些怪異問題。

工欲善其事,必先利其器,要想解決性能問題,掌握系統(tǒng)級的方法還略顯不夠,有時候換一種數(shù)據(jù)結(jié)構(gòu)或算法,效果可能會更好。感覺自己在這方面還略顯薄弱,慢慢加強吧,各位也共勉。

以上就是詳解PHP優(yōu)化巨量關(guān)鍵詞的匹配的詳細內(nèi)容,更多關(guān)于PHP優(yōu)化巨量關(guān)鍵詞的匹配的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標簽: PHP
相關(guān)文章:
主站蜘蛛池模板: 全肉乱妇杂乱视频在线观看 | 国产女人18毛片水真多1kt∧ | 黄色网页免费在线观看 | 欧美精品久久96人妻无码 | 久久精品视频9 | 国产精品久久久免费观看 | 极品无码av国模在线观看 | 午夜欧美精品久久久久久久 | 亚洲精品v天堂中文字幕 | 国产区二区 | 作爱视频在线 | 99久久久久久99国产精品免 | 毛片手机在线 | 日韩国产欧美在线观看 | 中国美女黄色一级片 | 国内激情自拍 | 国产精品美女毛片真酒店 | 欧美精品乱码99久久蜜桃 | 播播网色播播 | 亚洲一区二区影院 | 色婷婷成人网 | 女同互慰高潮呻吟免费播放 | hitomi一区二区三区精品 | 亚洲欧美日韩国产成人精品 | 懂色av噜噜一区二区三区av88 | 亚洲欧洲中文字幕 | 嫩草视频入口 | 永久免费精品影视网站 | 亚洲人午夜射精精品日韩 | 日韩精品在线观看一区 | 五月色丁香婷婷网蜜臀av | 精品人人妻人人澡人人爽人人 | 久久久久无码精品国产h动漫 | 天天拍天天干 | 久久亚洲日韩看片无码 | 在线a毛片 | 中文字幕av日韩精品一区二区 | 国产馆在线观看 | 欧美性白人极品1819hd | 人妻人人澡人人添人人爽 | 成人xxx视频 | 日韩精品欧美在线 | 天天透天天干 | 麻豆视频在线 | 久久精品国产v日韩v亚洲 | 一本色综合久久 | 人妻丰满熟妇av无码区不卡 | 人人妻人人澡人人爽不卡视频 | 亚久久| 喷水视频在线观看 | 婚后日日高h文孕 | 国产精品自在线拍国产手机版 | 小萝莉末成年一区二区 | 精品一区二区三区在线成人 | 少妇呻吟内裤揉搓水 | 欧美香蕉爽爽人人爽 | 伊人久久成人网 | 在线免费成人 | 无码福利日韩神码福利片 | 五月婷婷丁香综合 | 免费黄色网址观看 | 国产露双乳喂奶在线观看 | 三上悠亚日韩精品二区 | 免费人成网站在线视频 | 麻豆视频软件 | 黄站在线观看 | 国产精品白嫩极品美女视频 | 成人性生交片免费看 | 欧美喷潮久久久xxxxx | 国产黄大片在线观看画质优化 | 久久久无码精品亚洲日韩按摩 | 香蕉网在线观看 | 农村老妇性真猛 | 国产xxxx做受视频 | 少妇影院y1111 | 日美韩一区二区三区 | 精品国产欧美一区二区 | 亚洲熟女综合一区二区三区 | 无码人妻精品一区二区三区下载 | 亚洲黄色小视频在线观看 | 久久综合激情 | 亚洲图片欧美在线 | 国产天堂网站 | 中文字幕一区日韩精品 | 婷婷综合视频 | 日日骚网 | 国产99页 | 少妇一级淫片免费播放 | 狠狠躁夜夜躁人人爽超碰女h | 日韩女同强女同hd | 青青草在线视频网站 | 四色永久网址在线观看 | 欧美视频网站中文字幕 | 丰满人妻一区二区三区免费视频 | 少妇高潮惨叫久久久久 | 一区二区三区四区产品乱 | 后人极品翘臀美女在线播放 | av中文在线资源 | 性――交――性――乱睡觉 | 国产又黄又猛又粗又爽的a片动漫 | 精品国自产在线观看 | 丰满少妇裸体淫交 | 国产最新进精品视频 | 日日夜夜爱| 国产精成人品日日拍夜夜免费 | 国产a三级久久精品 | 国产精品久久久久久久妇 | 不卡中文一二三区 | 韩国黄色片网站 | 日韩不卡视频在线观看 | 精品国产综合 | 蜜桃堂女性向av片在线观看 | 色妺妺av爽爽影院 | 在线观看日韩视频 | 偷拍一区二区三区在线婷婷 | 成人毛片在线精品国产 | 肉体裸交137日本大胆摄影 | 免费国产又色又爽又黄的软件 | 日本免费一区二区三区四区五六区 | 国产视频二区三区 | 亚洲网址在线观看 | 国产精品久久久免费观看 | 屁屁影院ccyy备用地址 | 99国内精品久久久久久久 | 国产成a人亚洲精品 | 亚洲精品欧美综合四区 | www成人免费 | 国产伦理网站 | 国产精品久久久久久av福利 | 亚洲欧美日韩制服 | 无码av中文字幕免费放 | 999国产| 性xxxx18免费观看视频 | 亚洲乱色伦图片区小说 | 欧美性福利 | 在线观看特色大片免费网站 | 在线观看免费视频a | 亚洲精品在线免费播放 | 久久精品99国产精品亚洲 | 一级做a爱片性色毛片高清 一级做a毛片 | 色综合久| 亚洲成av人综合在线观看 | 亚洲午夜av久久乱码 | 日日摸日日碰夜夜爽亚洲精品蜜乳 | 一本大道久久加勒比香蕉 | 国产精品婷婷久久爽一下 | 九九综合va免费看 | 99精品国产一区二区三区不卡 | 日韩毛片欧美一级a | 丝袜av在线播放 | 国产无套精品一区二区 | 欧美成人网视频 | pics艳丽的少妇asian | av中出在线 | 亚洲理论影院 | 国产精品久久久久久影视 | 亚洲日本中文字幕天天更新 | 国产精品久久久久久久 | 久热国产精品视频一区二区三区 | 天天干天天操天天拍 | 巨胸美女狂喷奶水www网站 | 精品国产免费久久 | 91国自产精品中文字幕亚洲 | 91九色视频观看 | 91av在| 久久精品国产精品青草 | 国产成人综合美国十次 | 国产精品igao为爱做激情 | 粉嫩av一区二区三区免费看 | 精品亚洲一区二区三区四区五区 | 亚洲日韩中文字幕天堂不卡 | 午夜一区二区国产好的精华液 | 91一区二区在线观看 | 日本久久高清一区二区三区毛片 | 谁有免费的黄色网址 | 国产老头和老头xxxxx免费 | 国产精品乱码 | 超碰最新网址 | 亚洲麻豆 | 91香蕉国产 | 欧美城天堂网 | 久久久久久国产精品三区 | 亚洲 激情 小说 另类 欧美 | 在线欧美成人 | 日日夜夜撸影院 | 麻豆色淫网站av水蜜桃三级 | 激情婷婷综合 | 伊人免费视频 | 中文欧美日韩 | 中文视频在线 | 狠狠干成人 | 黄色天天影视 | 福利国产片 | 隔壁人妻偷人bd中字 | 黄色av网站在线 | 东京热久久综合久久88 | 天天操人人射 | 天天躁日日摸久久久精品 | 瑟瑟在线视频 | 天堂а√在线资源在线 | 免费成年人高清视频 | 久久久久国产一区二区三区小说 | 国产成人精品一区二区视频 | 午夜成人理论无码电影在线播放 | 欧av在线 | 日本黄又爽又大高潮毛片 | 韩国午夜理论在线观看 | 国产九九在线 | 久久久中文久久久无码 | 新婚夜第一次深深挺进 | 天堂√最新版中文在线地址 | 美女av毛片| 少妇高潮久久77777 | 乳霸冲田杏梨中文字幕担心学生的 | 久久精品久久久久久久久久久久久 | 天天干视频在线观看 | 日本黄色动态图 | 精品国产乱码久久久久久郑州公司 | 看国产一级毛片 | 国产寡妇亲子伦一区二区三区四区 | 精品国产1区2区3区 精品国产31久久久久久 | 又摸又揉又黄又爽的视频 | 国产精品熟妇一区二区三区四区 | 久久综合狠狠综合久久综合88 | 国产成人麻豆亚洲综合无码精品 | 筱田优av| 少妇搡bbbb爽毛片无 | 国产二区三区视频 | 夜鲁夜鲁狠鲁天天在线 | 我们的2018在线观看免费高清 | 日本美女视频网站 | 日韩精品一区不卡 | 韩国呻吟大尺度激情视频 | 50一60岁老妇女毛片 | 亚洲精品99 | 日本男人天堂网 | 深夜国产精品 | 国产依人 | 成人免费ā片在线观看 | 久久久青草婷婷精品综合日韩 | 女人夜夜春高潮爽a∨片传媒 | 又黄又爽又色的视频 | 91色视频网站 | 久久一久久 | 亚洲a免费 | 永久免费的啪啪网站免费观看浪潮 | 午夜剧场免费看 | 免费网站av | 亚洲精品成人无码中文毛片不卡 | 国产精品51麻豆cm传媒 | 天天天欲色欲色www免费 | 少妇又色又爽又高潮极品 | 国产欧美精品一区 | 久久久久97国产精 | 精品人妻午夜一区二区三区四区 | 黄色网址在线视频 | 正在播放国产真实哭都没用 | 大象传媒成人在线观看 | 日韩在线观看网址 | 精品国产一区二区三区噜噜噜 | 天天操网址 | 欧美日本精品一区二区三区 | 韩日精品在线观看 | 人妻另类 专区 欧美 制服 | 亚洲一区二区三区日本久久九 | 日本免费高清 | jlzzjlzzjlzz亚洲人 | 久草精品视频在线看网站免费 | 天天做天天爱夜夜爽 | 无码中文字幕日韩专区 | 亚洲精品aaaaa | 国产精品亚洲a | 国内精品久久久久久久97牛牛 | 国产 欧美 日韩 一区 | 欧美日韩黄色网 | 在线观看毛片av | 黄色av高清 | www桃色| 性欧美精品久久久久久久 | aaaaa少妇高潮大片在按摩线 | 粗大猛烈进出高潮视频大全 | 91社区视频| 一本视频 | 国产人妻777人伦精品hd | 成人性做爰aaa片免费看曹查理 | 国产黄色录相 | 国产精品伦视频看免费三 | 久久在线中文字幕 | 人人爱人人射 | 亚洲裸男自慰gv网站 | 久久婷婷影院 | 精品人妻系列无码专区 | 国产精品久久久久久久久久 | 人人妻人人玩人人澡人人爽 | 丰满熟女人妻中文字幕免费 | 国产一区二区三区四区五区加勒比 | 色一欲一性一乱—区二区三区 | 成人在线a| 免费看美女被靠到爽的视频 | 综合色伊人 | 免费高清毛片 | 最新av观看 | 日韩免费不卡视频 | 天天狠天天插 | 夫の上司に犯波多野结衣853 | 在线观看的毛片 | 国产探花在线精品一区二区 | 无码人妻精品一区二区三区在线 | 日本一级爽快片野花 | 成–人–黄–色–网–站 | 精品女同一区二区三区在线播放 | 男女裸体影院高潮 | 国产成人精品视频 | 蜜桃成人在线观看 | 国内精自线一二三四在线看 | 免费看一级特黄a大片 | 国产精品igao视频网入口 | 国产美女被遭强高潮免费网站 | 欧美v亚洲v综合ⅴ国产v | 10000部拍拍拍免费视频 | 国产3p露脸普通话对白 | 国产一区福利 | 被黑人猛躁10次高潮视频 | 天天操天天摸天天爽 | 蜜桃av一区| 亚洲欧美一区二区三区视频 | 国产情侣自拍av | 亚洲精品在线网站 | 国产干干干 | 欧美城天堂网址 | 欧美久久综合 | 青草青草久热精品视频国产4 | 久久天天躁夜夜躁狠狠85麻豆 | 乱人伦人妻系列 | 97在线观看免费观看高清 | 91精品专区 | av网子| 最爽无遮挡行房视频 | 国产丝袜一区二区三区 | 精品无码人妻一区二区三区品 | 91精产国品一二三 | 91久久一区二区 | 97精品国产手机 | 久久精品日日躁夜夜躁 | 四个黑人玩一个少妇四p | 欧美青草视频 | 黄色网战在线观看 | 欧美精品1区2区 | 国产精品久久午夜夜伦鲁鲁 | 国内精品久久久久久久影视红豆 | 少妇又色又紧又黄又刺激免费 | 免费国产羞羞网站视频 | 国产露脸91国语对白 | 男人添女人下部高潮视频 | 国产精品三 | av在线资源 | 成人在线超碰 | 日韩成人高清在线 | 美女毛片在线观看 | 免费观看又污又黄的网站 | japanesexxx乱女另类 | 亚洲天堂激情 | 中文字幕免费高清网站 | 天堂网www中文在线 伊人久久大香线蕉综合网站 | 激情丁香| 成熟女人特级毛片www免费 | 久草热在线视频 | 日韩av在线看 | 欧美精品色视频 | 国产香蕉9 | 内射囯产旡码丰满少妇 | 极品福利视频 | 网站av| 亚洲国产成人一区二区在线 | √新版天堂资源在线资源 | 免费看黄色三级三级 | 欧美色第一页 | 欧美性视屏 | 日韩精品一二三四区 | 久久久久久亚洲精品 | 色xxxxxx| 人妻熟妇乱又伦精品视频app | 五月天国产在线 | 18国产免费视频 | 午夜国内精品a一区二区桃色 | 操大逼免费视频 | 亚洲 激情 小说 另类 欧美 | 久久久99久久久国产自输拍 | 欧美成人一区在线观看 | japanese av在线| 老司机午夜在线 | 天堂av影院 | 亚洲第三区 | 成人av网站在线播放 | 亚洲国产成人丁香五月激情 | 久久加勒比亚洲精品一区 | 123毛片 | 欧美在线视频播放 | 天堂av手机在线 | 成人av在线一区二区三区 | 老色鬼永久视频网站 | 欧美性精品 | 亚洲国产成人精品无码一区二区 | 国产精品国产三级国产普通话蜜臀 | 国产免费丝袜调教视频 | 天天操天天摸天天干 | 欧美黑人激情 | 久久综合欧美 | 国产性按摩 | 成人综合色站 | 九色丨蝌蚪丨少妇调教 | 一区二区三区精 | 91精品视频在线 | 91视频成人| 精品欧美一区二区三区免费观看 | 国产免费色视频 | 日韩精品手机在线 | 色五月视频 | 极品美女穴 | 香港三日三级少妇三级99 | 91传媒理伦片在线观看 | 超碰在线94 | 全国男人的天堂网 | 精品一区二区三区无码免费视频 | 色一情一乱一伦一区二区三区日本 | 免费少妇荡乳情欲视频 | 国产精品欧美一区二区三区喷水 | 黄色成人在线免费观看 | www.蜜臀| 无码h片在线观看网站 | 精品国产传媒 | 天堂久久爱资源站www | 中文人妻无码一区二区三区 | 91视频色 | 欧美极品少妇无套实战 | 中文字幕亚洲无线码 | 欧美一区二区三区在线观看视频 | 浴室激情hd免费看 | 操韩国美女 | 欧美91看片特黄aaaa | 亚洲国产精久久久久久久 | 国产精品第一国产精品 | 国产99久60在线视频 | 传媒 | 中文字幕日韩视频 | 国产高清在线a视频大全 | 一区二区三区久久久久 | 免费成人在线网站 | 一本一生久久a久久精品综合蜜 | 天堂69堂在线精品视频软件 | 91毛片在线观看 | 日本体内she精高潮 中国无码人妻丰满熟妇啪啪软件 | 一边吃奶一边做动态图 | 久久www成人_看片免费不卡 | 亚洲色图另类小说 | 天堂中文字幕av | 秋霞在线观看秋 | 91视频天堂 | 成人免费黄网站 | 国产精品一二区在线观看 | 操碰视频| 99在线精品视频观看 | 狠狠地日 | 先锋资源国产 | 无遮挡啪啪摇乳动态图 | 久久精品国产清自在天天线 | 国产成人美女视频 | 黑人添美女bbb添高潮了 | 久久久久黑人强伦姧人妻 | 久久久精品国产sm最大网站 | 最新亚洲人成无码网站 | 91原创视频在线观看 | 香蕉视频传媒 | 色视频在线网站 | 欧美日韩国产免费一区二区三区 | 美女露出奶头扒开尿口免费网站 | a级高清免费毛片av在线 | 少妇高潮露脸国语对白 | 国产尤物视频在线观看 | 国内外成人在线视频 | 亚洲精品av中文字幕在线 | 色婷婷夜夜躁狠狠躁麻豆免费 | 少妇精品视频 | 国产精品你懂的 | 911国产在线 | 国内揄拍国内精品 | 人妻无码一区二区不卡无码av | 欧美在线观看a | 午夜啪视频 | sm捆绑一区二区三区 | 日韩av大片在线观看 | 日韩av手机在线播放 | 特级丰满少妇一级aaa爱毛片 | 天天干天天干天天操 | 加勒比久久久 | 无码熟妇αⅴ人妻又粗又大 | 人妻聚色窝窝人体www一区 | 色翁荡熄又大又硬又粗又视频图片 | 国产成人歌舞艳r舞 | 国产精品一区二区视频 | 美女爆吸乳羞羞免费网站妖精 | 国产两女互慰高潮视频在线观看 | 中文有码在线 | 亚洲中文字幕高清有码在线 | 欧美一级片在线视频 | 91l九色lporny | 国产91精品高潮白浆喷水 | 一区二区亚洲精品国产精华液 | 国产做国产爱免费视频 | 我要看www免费看插插视频 | www.九色| 日韩国产成人在线 | 午夜免费1000 | 少妇性l交大片欧洲热妇乱xxx | 成人免费三p在线观看 | 欧美大片一级 | 精品九九视频 | 欧美精品第三页 | 黄色综合网| 欧美性折磨bdsm另类 | 中文字幕日韩欧美一区二区 | 女人被做到高潮视频 | 国产日韩在线看 | 69视频在线 | 国产日韩欧美亚欧在线 | 日本a v网站 | 国产情侣主伺候绿帽男m | 国产性猛交xxxx免费看久久 | www亚洲人| 大黄毛片 | 91丨九色丨蝌蚪丨老版 | 日本三级一区二区三区 | 成年男女免费视频网站 | 亚洲欧美色图在线 | 国产又粗又猛又大爽老大爷 | 国产精品18 | 日本免费精品一区二区三区 | 天堂а√在线地址在线 | 亚洲aa视频| 精品无码国产av一区二区三区 | 天天干天天干天天 | 污污内射久久一区二区欧美日韩 | 一级做a爱片久久毛片 | 久久久精品日韩 | 日日躁夜夜躁狠狠躁aⅴ蜜 日日躁夜夜躁狠狠躁超爽2001 | 天堂一区二区mv在线观看 | 中文字幕在线观看一区二区 | av免费观 | 成人免费影片 | 全球av在线 | 欧美日韩中文国产一区发布 | 免费在线播放黄色片 | 亚洲精品一区二区三区中文字幕 | 日本天堂免费a | 久久黄色小视频 | 最新国产乱人伦偷精品免费网站 | 米奇av| 欧美韩国日本 | 91午夜少妇三级全黄 | 色一情一乱一伦 | 久久11| 91视频com| 国产又粗又猛又爽又黄的视频软件 | 偷拍亚洲欧美 | 涩五月婷婷 | 免费国产精品视频 | 日本少妇性高潮 | 国产中文字幕乱人伦在线观看 | 性国产三级在线观看 | 在线观看亚洲国产精品 | 精品女同一区二区三区在线 | 国产97在线 | 中文 | 91啪视频在线观看 | 天天摸夜夜添夜夜无码 | 欧美性猛交xxxⅹ丝袜 | 黄色aaaaa| 亚洲国产精品99久久久久久久久 | 日本人六九视频69jzz免费 | 久久精品女人毛片国产 | 国产一级精品毛片 | 在线超碰| 综合久久久久 | 国产伦久视频免费观看视频 | 免费午夜爽爽爽www视频十八禁 | 男女做爰猛烈叫床爽爽免费网站 | 五月婷久久 | 日本泡妞xxxx免费视频软件 | 男女下面一进一出无遮挡 | 白人と日本人の交わりビデオ | 一本色道a无线码一区v | 91久久久一线二线三线品牌 | 又粗又大又黄又硬又爽免费看 | 太深太粗太爽太猛了视频免费观看 | 欧美aaaaaaa| 99热com| 噜噜噜在线视频 | 懂色aⅴ精品一区二区三区蜜月 | 俄罗斯毛片基地 | 欧美一级黄色片在线观看 | 综合狠狠| 精品免费久久久久久久 | 最近2019中文字幕大全第二页 | 刺激性视频黄页 | 成人毛毛片 | 国产91www| 日韩久久成人 | 手机在线一区 | 一级黄色片视频 | 精品一区二区三区在线观看视频 | 亚洲国产另类久久久精品性 | 亚洲国产欧美在线人成 | 亚洲熟女综合一区二区三区 | 极品女神无套呻吟啪啪 | 中文字幕在线观看第一页 | 又湿又紧又大又爽a视频 | 免费观看欧美一级 |