精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

學(xué)透 Redis HyperLogLog,看這篇就夠了

數(shù)據(jù)庫(kù) Redis
HyperLogLog 是一種概率數(shù)據(jù)結(jié)構(gòu),它使用概率算法來(lái)統(tǒng)計(jì)集合的近似基數(shù)。而它算法的最本源則是伯努利過(guò)程。

在移動(dòng)互聯(lián)網(wǎng)的業(yè)務(wù)場(chǎng)景中,數(shù)據(jù)量很大,系統(tǒng)需要保存這樣的信息:一個(gè) key 關(guān)聯(lián)了一個(gè)數(shù)據(jù)集合,同時(shí)對(duì)這個(gè)數(shù)據(jù)集合做統(tǒng)計(jì)做一個(gè)報(bào)表給運(yùn)營(yíng)人員看。

比如:

  • 統(tǒng)計(jì)一個(gè) APP 的日活、月活數(shù)。
  • 統(tǒng)計(jì)一個(gè)頁(yè)面的每天被多少個(gè)不同賬戶訪問(wèn)量(Unique Visitor,UV)。
  • 統(tǒng)計(jì)用戶每天搜索不同詞條的個(gè)數(shù)。
  • 統(tǒng)計(jì)注冊(cè) IP 數(shù)。

通常情況下,系統(tǒng)面臨的用戶數(shù)量以及訪問(wèn)量都是巨大的,比如百萬(wàn)、千萬(wàn)級(jí)別的用戶數(shù)量,或者千萬(wàn)級(jí)別、甚至億級(jí)別的訪問(wèn)信息,咋辦呢?

Redis:“這些就是典型的基數(shù)統(tǒng)計(jì)應(yīng)用場(chǎng)景,基數(shù)統(tǒng)計(jì):統(tǒng)計(jì)一個(gè)集合中不重復(fù)元素,這被稱為基數(shù)。”

1. 是什么

HyperLogLog 是一種概率數(shù)據(jù)結(jié)構(gòu),用于估計(jì)集合的基數(shù)。每個(gè) HyperLogLog 最多只需要花費(fèi) 12KB 內(nèi)存,在標(biāo)準(zhǔn)誤差 0.81%的前提下,就可以計(jì)算 2 的 64 次方個(gè)元素的基數(shù)。

HyperLogLog 的優(yōu)點(diǎn)在于它所需的內(nèi)存并不會(huì)因?yàn)榧系拇笮《淖儯瑹o(wú)論集合包含的元素有多少個(gè),HyperLogLog 進(jìn)行計(jì)算所需的內(nèi)存總是固定的,并且是非常少的。

主要特點(diǎn)如下:

  • 高效的內(nèi)存使用:HyperLogLog 的內(nèi)存消耗是固定的,與集合中的元素?cái)?shù)量無(wú)關(guān)。這使得它特別適用于處理大規(guī)模數(shù)據(jù)集,因?yàn)樗恍枰鎯?chǔ)每個(gè)不同的元素,只需要存儲(chǔ)估計(jì)基數(shù)所需的信息。
  • 概率估計(jì):HyperLogLog 提供的結(jié)果是概率性的,而不是精確的基數(shù)計(jì)數(shù)。它通過(guò)哈希函數(shù)將輸入元素映射到位圖中的某些位置,并基于位圖的統(tǒng)計(jì)信息來(lái)估計(jì)基數(shù)。由于這是一種概率性方法,因此可能存在一定的誤差,但通常在實(shí)際應(yīng)用中,這個(gè)誤差是可接受的。
  • 高速計(jì)算:HyperLogLog 可以在常量時(shí)間內(nèi)計(jì)算估計(jì)的基數(shù),無(wú)論集合的大小如何。這意味著它的性能非常好,不會(huì)受到集合大小的影響。

2. 修煉心法

基本原理

HyperLogLog 是一種概率數(shù)據(jù)結(jié)構(gòu),它使用概率算法來(lái)統(tǒng)計(jì)集合的近似基數(shù)。而它算法的最本源則是伯努利過(guò)程。

伯努利過(guò)程就是一個(gè)拋硬幣實(shí)驗(yàn)的過(guò)程。拋一枚正常硬幣,落地可能是正面,也可能是反面,二者的概率都是 1/2 。

伯努利過(guò)程就是一直拋硬幣,直到落地時(shí)出現(xiàn)正面位置,并記錄下拋擲次數(shù)k。

比如說(shuō),拋一次硬幣就出現(xiàn)正面了,此時(shí) k 為 1; 第一次拋硬幣是反面,則繼續(xù)拋,直到第三次才出現(xiàn)正面,此時(shí) k 為 3。

對(duì)于 n 次伯努利過(guò)程,我們會(huì)得到 n 個(gè)出現(xiàn)正面的投擲次數(shù)值 k1, k2 ... kn, 其中這里的最大值是 k_max。

根據(jù)一頓數(shù)學(xué)推導(dǎo),我們可以得出一個(gè)結(jié)論:2^{k_ max} 來(lái)作為 n 的估計(jì)值。

也就是說(shuō)你可以根據(jù)最大投擲次數(shù)近似的推算出進(jìn)行了幾次伯努利過(guò)程。

所以 HyperLogLog 的基本思想是利用集合中數(shù)字的比特串第一個(gè) 1 出現(xiàn)位置的最大值來(lái)預(yù)估整體基數(shù),但是這種預(yù)估方法存在較大誤差,為了改善誤差情況,HyperLogLog 中引入分桶平均的概念,計(jì)算 m 個(gè)桶的調(diào)和平均值。

Redis 內(nèi)部使用字符串位圖來(lái)存儲(chǔ) HyperLogLog 所有桶的計(jì)數(shù)值,一共分了 2^14 個(gè)桶,也就是 16384 個(gè)桶。每個(gè)桶中是一個(gè) 6 bit 的數(shù)組。

這段代碼描述了 Redis HyperLogLog 數(shù)據(jù)結(jié)構(gòu)的頭部定義(hyperLogLog.c 中的 hllhdr 結(jié)構(gòu)體)。以下是關(guān)于這個(gè)數(shù)據(jù)結(jié)構(gòu)的各個(gè)字段的解釋。

struct hllhdr {
    char magic[4];
    uint8_t encoding;
    uint8_t notused[3];
    uint8_t card[8];
    uint8_t registers[];
};

(1)magic[4]:這個(gè)字段是一個(gè) 4 字節(jié)的字符數(shù)組,用來(lái)表示數(shù)據(jù)結(jié)構(gòu)的標(biāo)識(shí)符。在 HyperLogLog 中,它的值始終為"HYLL",用來(lái)標(biāo)識(shí)這是一個(gè) HyperLogLog 數(shù)據(jù)結(jié)構(gòu)。

(2)encoding:這是一個(gè) 1 字節(jié)的字段,用來(lái)表示 HyperLogLog 的編碼方式。它可以取兩個(gè)值之一:

  • HLL_DENSE:表示使用稠密表示方式。
  • HLL_SPARSE:表示使用稀疏表示方式。

(3)notused[3]:這是一個(gè) 3 字節(jié)的字段,目前保留用于未來(lái)的擴(kuò)展,要求這些字節(jié)的值必須為零。

(4)card[8]:這是一個(gè) 8 字節(jié)的字段,用來(lái)存儲(chǔ)緩存的基數(shù)(基數(shù)估計(jì)的值)。

(5)egisters[]:這個(gè)字段是一個(gè)可變長(zhǎng)度的字節(jié)數(shù)組,用來(lái)存儲(chǔ) HyperLogLog 的數(shù)據(jù)。

4-45

圖 2-45

Redis 對(duì) HyperLogLog 的存儲(chǔ)進(jìn)行了優(yōu)化,在計(jì)數(shù)比較小的時(shí)候,存儲(chǔ)空間采用系數(shù)矩陣,占用空間很小。

只有在計(jì)數(shù)很大,稀疏矩陣占用的空間超過(guò)了閾值才會(huì)轉(zhuǎn)變成稠密矩陣,占用 12KB 空間。

出招實(shí)戰(zhàn):網(wǎng)頁(yè)訪問(wèn)量統(tǒng)計(jì)

在移動(dòng)互聯(lián)網(wǎng)的業(yè)務(wù)場(chǎng)景中,數(shù)據(jù)量很大,系統(tǒng)需要保存這樣的信息:一個(gè) key 關(guān)聯(lián)了一個(gè)數(shù)據(jù)集合,同時(shí)對(duì)這個(gè)數(shù)據(jù)集合做統(tǒng)計(jì)做一個(gè)報(bào)表給運(yùn)營(yíng)人員看。

比如。

  • 統(tǒng)計(jì)一個(gè) APP 的日活、月活數(shù)。
  • 統(tǒng)計(jì)一個(gè)頁(yè)面的每天被多少個(gè)不同賬戶訪問(wèn)量(Unique Visitor,UV)。
  • 統(tǒng)計(jì)用戶每天搜索不同詞條的個(gè)數(shù)。
  • 統(tǒng)計(jì)注冊(cè) IP 數(shù)。

通常情況下,系統(tǒng)面臨的用戶數(shù)量以及訪問(wèn)量都是巨大的,比如百萬(wàn)、千萬(wàn)級(jí)別的用戶數(shù)量,或者千萬(wàn)級(jí)別、甚至億級(jí)別的訪問(wèn)信息,咋辦呢?

使用 Set 實(shí)現(xiàn)

一個(gè)用戶一天內(nèi)多次訪問(wèn)一個(gè)網(wǎng)站只能算作一次,所以很容易就想到通過(guò) Redis 的 Set 集合來(lái)實(shí)現(xiàn)。

比如微信昵稱叫 “Chaya” 的小姐姐訪問(wèn)【愛(ài)一個(gè)人總是要掉眼淚的風(fēng)險(xiǎn)】這篇文章時(shí),我把這個(gè)微信昵稱 “Chaya” 存到 Set 集合中。

SADD 愛(ài)一個(gè)人總是要掉眼淚的風(fēng)險(xiǎn):uv 碼哥 Chaya 趙小因 Chaya
(integer) 3

“Chaya” 多次訪問(wèn)這篇文章, Set 的去重特性保證集合中只有一個(gè)記錄。接著,通過(guò) SCARD 命令,統(tǒng)計(jì)頁(yè)面 UV。指令返回這個(gè)集合的元素個(gè)數(shù)(也就是微信昵稱個(gè)數(shù))。

SCARD 愛(ài)一個(gè)人總是要掉眼淚的風(fēng)險(xiǎn):uv
(integer) 3

使用 HyperLogLog 實(shí)現(xiàn)

Chaya:“Set 集合雖好,如果文章非常火爆達(dá)到千萬(wàn)級(jí)別,一個(gè) Set 集合就保存了千萬(wàn)個(gè)用戶的 ID,頁(yè)面多了消耗的內(nèi)存也太大了。”

不要怕,只要思想不滑坡,辦法總比困難多。這些就是典型的基數(shù)統(tǒng)計(jì)應(yīng)用場(chǎng)景,基數(shù)統(tǒng)計(jì):統(tǒng)計(jì)一個(gè)集合中不重復(fù)元素的個(gè)數(shù)。

HyperLogLog 的優(yōu)點(diǎn)在于它所需的內(nèi)存并不會(huì)因?yàn)榧系拇笮《淖儯瑹o(wú)論集合包含的元素有多少個(gè),HyperLogLog 進(jìn)行計(jì)算所需的內(nèi)存總是固定的,并且是非常少的。

每個(gè) HyperLogLog 最多只需要花費(fèi) 12KB 內(nèi)存,在標(biāo)準(zhǔn)誤差 0.81%的前提下,就可以計(jì)算 2 的 64 次方個(gè)元素的基數(shù)。

HyperLogLog 使用太簡(jiǎn)單了。PFADD、PFCOUNT、PFMERGE三個(gè)指令打天下。

PFADD

每訪問(wèn)一次頁(yè)面,調(diào)用 PFADD 指令 將這個(gè)用戶 ID 添加到 HyperLogLog 中。如下 一共有三個(gè)用戶訪問(wèn)了這頁(yè)面,其中 Chaya 訪問(wèn)了兩次,但只算一次。

PFADD 愛(ài)一個(gè)人總是要掉眼淚的風(fēng)險(xiǎn):uv 碼哥 Chaya 趙小因 Chaya

如果執(zhí)行命令后 HyperLogLog 估計(jì)的近似基數(shù)發(fā)生變化,PFADD則返回 1,否則返回 0。如果指定的鍵不存在,該命令會(huì)自動(dòng)創(chuàng)建一個(gè)空的 HyperLogLog 結(jié)構(gòu)。

pfadd 命令并不會(huì)一次性分配 12k 內(nèi)存,而是隨著基數(shù)的增加而逐漸增加內(nèi)存分配;

PFCOUNT

接下來(lái),通過(guò) PFCOUNT 指令獲取文章【愛(ài)一個(gè)人總是要掉眼淚的風(fēng)險(xiǎn)】的 UV 值,可以看到返回值是 3 ,符合預(yù)期。

> PFCOUNT 愛(ài)一個(gè)人總是要掉眼淚的風(fēng)險(xiǎn):uv
3

PFMERGE 合并統(tǒng)計(jì)

Chaya:“還有一個(gè)變態(tài)需求,對(duì)文章進(jìn)行標(biāo)簽分類(lèi),運(yùn)營(yíng)說(shuō)要把都是情感文章標(biāo)簽的幾個(gè)頁(yè)面數(shù)據(jù)合并統(tǒng)計(jì)。”

其中頁(yè)面的 UV 訪問(wèn)量也需要合并,那這個(gè)時(shí)候 PFMERGE 就可以派上用場(chǎng)了,也就是同樣的用戶訪問(wèn)這兩個(gè)頁(yè)面則只算做一次。

如下指令,把愛(ài)一個(gè)人總是要掉眼淚的風(fēng)險(xiǎn):uv和愛(ài)情是幸福和不委屈:uv 兩個(gè) HyperLogLog 集合數(shù)據(jù)合并到情感分類(lèi)文章:uv這個(gè)集合中。

PFADD 愛(ài)情是幸福和不委屈:uv Chaya 趙小因 幸運(yùn)草
# 合并兩個(gè)頁(yè)面 UV
PFMERGE 情感分類(lèi)文章:uv 愛(ài)一個(gè)人總是要掉眼淚的風(fēng)險(xiǎn):uv 愛(ài)情是幸福和不委屈:uv

接著,執(zhí)行 PFCOUNT 情感分類(lèi)文章:uv 統(tǒng)計(jì)合并后的數(shù)據(jù)。

> PFCOUNT 情感分類(lèi)文章:uv
4

將多個(gè) HyperLogLog 合并(merge)為一個(gè) HyperLogLog , 合并后的 HyperLogLog 的基數(shù)接近于所有輸入 HyperLogLog 的可見(jiàn)集合(observed set)的并集。

4. Redisson 實(shí)戰(zhàn)

開(kāi)門(mén)見(jiàn)山,Spring Boot 與 Redisson 集成詳見(jiàn)前面篇章,主要有四個(gè)方法。

  • add、addAll,閱讀文章調(diào)用該方法將數(shù)據(jù)存入 HyperLogLog 中。
  • count,統(tǒng)計(jì)基數(shù)。
  • merge,合并多個(gè) HyperLogLog 為一個(gè)。
@Service
public class HyperLogLogService {

    @Autowired
    private RedissonClient redissonClient;

    /**
     * 將數(shù)據(jù)添加到 HyperLogLog
     *
     * @param logName
     * @param item
     * @param <T>
     */
    public <T> void add(String logName, T item) {
        RHyperLogLog<T> hyperLogLog = redissonClient.getHyperLogLog(logName);
        hyperLogLog.add(item);
    }

    /**
     * 將集合數(shù)據(jù)添加到 HyperLogLog
     * @param logName
     * @param items
     * @param <T>
     */
    public <T> void addAll(String logName, List<T> items) {
        RHyperLogLog<T> hyperLogLog = redissonClient.getHyperLogLog(logName);
        hyperLogLog.addAll(items);
    }

    /**
     * 將 otherLogNames 的 log 合并到 logName
     *
     * @param logName       當(dāng)前 log
     * @param otherLogNames 需要合并到當(dāng)前 log 的其他 logs
     * @param <T>
     */
    public <T> void merge(String logName, String... otherLogNames) {
        RHyperLogLog<T> hyperLogLog = redissonClient.getHyperLogLog(logName);
        hyperLogLog.mergeWith(otherLogNames);
    }

    /**
     * 統(tǒng)計(jì)基數(shù)
     *
     * @param logName 需要統(tǒng)計(jì)的 logName
     * @param <T>
     * @return
     */
    public <T> long count(String logName) {
        RHyperLogLog<T> hyperLogLog = redissonClient.getHyperLogLog(logName);
        return hyperLogLog.count();
    }
}
責(zé)任編輯:趙寧寧 來(lái)源: 碼哥字節(jié)
相關(guān)推薦

2023-09-25 08:32:03

Redis數(shù)據(jù)結(jié)構(gòu)

2019-08-16 09:41:56

UDP協(xié)議TCP

2021-09-30 07:59:06

zookeeper一致性算法CAP

2022-03-29 08:23:56

項(xiàng)目數(shù)據(jù)SIEM

2021-05-07 07:52:51

Java并發(fā)編程

2019-05-08 15:59:58

Python函數(shù)數(shù)據(jù)類(lèi)型

2019-10-16 11:12:14

前端Docker虛擬機(jī)

2021-09-10 13:06:45

HDFS底層Hadoop

2021-07-28 13:29:57

大數(shù)據(jù)PandasCSV

2023-11-07 07:46:02

GatewayKubernetes

2017-03-30 22:41:55

虛擬化操作系統(tǒng)軟件

2024-08-27 11:00:56

單例池緩存bean

2024-09-27 11:51:33

Redis多線程單線程

2024-03-26 00:00:06

RedisZSet排行榜

2021-12-13 10:43:45

HashMapJava集合容器

2023-11-22 07:54:33

Xargs命令Linux

2023-12-07 09:07:58

2022-08-18 20:45:30

HTTP協(xié)議數(shù)據(jù)

2021-04-11 08:30:40

VRAR虛擬現(xiàn)實(shí)技術(shù)

2021-10-21 06:52:17

ZooKeeper分布式配置
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产美女永久无遮挡| 91精品久久久久久久久久久久久久| 9191在线视频| av在线最新| 久久精品水蜜桃av综合天堂| 国产欧美日韩中文字幕| 国产精品免费人成网站酒店| 一级毛片精品毛片| 色综合一区二区三区| 中文字幕一区二区三区在线乱码 | 精品丝袜在线| 亚洲国产精品精华液2区45| 91福利视频导航| 久久久久99精品成人片我成大片| 99精品视频在线观看播放| 欧美大片国产精品| 最新中文字幕2018| 白白色在线观看| 自拍偷在线精品自拍偷无码专区| 久久本道综合色狠狠五月| 亚洲天天综合网| 亚洲一区二区伦理| 欧美xxxx18国产| 国产精品免费无码| 欧美毛片免费观看| 日韩亚洲欧美综合| 五月花丁香婷婷| 小黄鸭精品aⅴ导航网站入口| 一区二区三区精密机械公司| 亚洲日本欧美在线| 国产成人天天5g影院在线观看| 国产乱子轮精品视频| 国产精品成人在线| 久久久久久久久影院| 国产综合亚洲精品一区二| 中文字幕精品一区久久久久| 玖草视频在线观看| 在这里有精品| 日韩欧美在线网站| 免费成年人高清视频| 欧洲成人一区| 欧洲中文字幕精品| 六月丁香婷婷激情| 日韩电影毛片| 午夜av区久久| 很污的网站在线观看| 午夜伦理在线视频| 亚洲男女一区二区三区| 成人手机视频在线| 日本在线免费看| 中文字幕欧美日本乱码一线二线| 欧美一区免费视频| 国产在线观看免费网站| 久久久亚洲综合| 久久久久久一区| 五月婷婷丁香六月| 91在线视频官网| 另类欧美小说| 国内在线精品| 国产精品午夜在线观看| 亚洲精品一区二| 网友自拍视频在线| 亚洲欧洲韩国日本视频| 成人性做爰片免费视频| 亚洲淫性视频| 亚洲国产成人av网| 国产精品沙发午睡系列| 怡红院成人在线| 欧洲精品视频在线观看| 欧美婷婷精品激情| 电影一区中文字幕| 精品福利一二区| 国产精品一级黄片| 国产一区二区三区探花| 波霸ol色综合久久| 九九九久久久久| 91久久夜色精品国产九色| 欧美一区二区三区精品电影| 日本黄色中文字幕| 国产一区二区三区免费观看| 成人免费视频观看视频| 四虎影院在线播放| 国产精品久久久久一区二区三区| 特色特色大片在线| 精精国产xxxx视频在线播放| 欧美午夜精品一区二区三区| 亚洲自拍第三页| 另类ts人妖一区二区三区| 亚洲欧洲高清在线| 男人操女人的视频网站| 99av国产精品欲麻豆| 国产精品久久久久不卡| www.久久综合| 26uuu另类欧美亚洲曰本| 一区二区在线观看网站| 1区2区在线| 欧美日韩视频在线第一区| 久久久久亚洲av片无码v| 亚洲人成网77777色在线播放| 三级精品视频久久久久| 日本熟妇毛茸茸丰满| 久久99国产精品久久99果冻传媒| 国产精品初高中精品久久| 日本不卡免费播放| 亚洲欧美日韩国产一区二区三区 | 免费高清视频精品| 国产精品美女黄网| 91亚洲精选| 午夜精品爽啪视频| 两性午夜免费视频| 亚洲性视频大全| 欧美日韩福利在线观看| 最近中文字幕在线视频| 不卡高清视频专区| 国产福利片一区二区| 女生影院久久| 精品国产免费视频| 三级黄色在线观看| 欧美一级视频| 国产一区二区三区免费不卡| 久久日韩视频| 欧美日韩精品一区二区三区四区 | 国产精品三级电影| 18禁男女爽爽爽午夜网站免费| 亚洲成人影音| 久久激情视频久久| 欧美日韩a v| 91原创在线视频| 国产av熟女一区二区三区| 日本一区二区三区中文字幕 | 成人在线观看网址| 蜜桃av在线免费观看| 在线观看亚洲专区| 熟妇高潮精品一区二区三区| 今天的高清视频免费播放成人| 亚洲wwwav| 毛片在线视频| 欧美日韩精品一区二区三区| www久久久久久久| 久久成人一区| 鲁片一区二区三区| 午夜激情电影在线播放| 亚洲精品国产电影| 好吊操这里只有精品| 国产99精品视频| 久久人妻无码一区二区| 视频一区日韩精品| 欧美人交a欧美精品| a毛片在线免费观看| 亚洲色图欧美激情| 亚洲欧美激情一区二区三区| 亚洲在线久久| 亚洲综合在线小说| 欧美人与禽性xxxxx杂性| 日韩欧美三级在线| 久青草免费视频| 成人精品免费看| 欧美日韩二三区| 亚洲婷婷丁香| 国产精品久久久久久久app | 中文在线一区二区 | 亚洲欧美一区二区三区在线观看 | 九九热视频在线免费观看| 麻豆中文一区二区| 黄瓜视频免费观看在线观看www | 成年人视频免费在线播放| 精品国产伦一区二区三区观看体验| 久久97人妻无码一区二区三区| 粉嫩在线一区二区三区视频| 国产精品www在线观看| 女同一区二区三区| 国产精品盗摄久久久| 男人资源在线播放| 精品国产自在久精品国产| 在线观看 中文字幕| 久久久高清一区二区三区| 视色视频在线观看| 国模一区二区三区| 欧美激情专区| 欧美美女福利视频| 欧美激情综合色综合啪啪五月| 婷婷婷国产在线视频| 欧美三级欧美一级| 青娱乐av在线| 久久丝袜美腿综合| 亚欧美一区二区三区| 国产精品日本| 亚洲一区尤物| 牛牛影视久久网| 国产精品入口尤物| 丰满大乳少妇在线观看网站| 亚洲欧美综合v| 国产黄频在线观看| 一本色道综合亚洲| 日本午夜在线观看| 久久一区二区三区四区| 中文字幕一区久久| 国产农村妇女毛片精品久久莱园子| 中国成人亚色综合网站| 久久久久观看| 亚洲xxxx18| 国产v综合v| 国产69精品久久久久99| seseavlu视频在线| 亚洲国产日韩欧美综合久久| 亚洲网站免费观看| 欧美日韩在线影院| 久久久精品视频免费观看| 国产午夜精品一区二区三区嫩草| 一区二区在线免费观看视频| 日本sm残虐另类| 黄网站欧美内射| 午夜日韩激情| 亚洲春色在线视频| 亚洲品质自拍| 精品欧美日韩| 日韩高清一区| 国产一区二区在线免费视频| 国产伦精品一区二区三区视频金莲| 欧美精品日韩www.p站| 草碰在线视频| 亚洲欧美激情四射在线日| 狠狠躁夜夜躁av无码中文幕| 欧美欧美欧美欧美首页| 欧美一区二区三区久久久| 午夜精品123| 久久久久人妻一区精品色欧美| 中文字幕日本不卡| 久久久久亚洲AV成人无在| 337p粉嫩大胆噜噜噜噜噜91av| 中国特级黄色片| 国产高清亚洲一区| 中文字幕丰满乱码| 久久激情五月激情| 538在线视频观看| 爽爽淫人综合网网站| 阿v天堂2017| 一区二区三区精品视频在线观看| 无码熟妇人妻av在线电影| 欧美日韩1区| 国产又粗又大又爽的视频| 性欧美欧美巨大69| 最新欧美日韩亚洲| 99精品视频在线| 欧美日韩视频免费在线观看| 日韩中文在线电影| 一区二区日本| 99久久国产综合精品成人影院| 亚洲一区二区三区午夜| 97精品国产| 在线观看免费黄色片| 日韩久久视频| 色乱码一区二区三区熟女| 91精品国产91久久久久久密臀 | 成人免费视频网站入口| 风间由美性色一区二区三区四区| 国产精品免费一区二区| 果冻天美麻豆一区二区国产| 精品一卡二卡三卡四卡日本乱码 | 亚洲中文无码av在线| 欧美视频精品在线| 国产精品视频第一页| 在线综合视频播放| 亚洲成人久久精品| 亚洲精品99久久久久中文字幕| 亚洲av成人精品一区二区三区在线播放| 日韩成人av网| 麻豆app在线观看| 色偷偷偷亚洲综合网另类| 成人video亚洲精品| 欧美精品久久久久久久| 周于希免费高清在线观看| 国产精品久久久久久久一区探花| 99热这里有精品| 国产精品午夜av在线| 国产乱码精品一区二区亚洲 | 成人性生交大片免费看在线播放| 欧美一区深夜视频| 福利一区二区免费视频| 99电影在线观看| 西野翔中文久久精品字幕| 亚洲三区在线观看| 伊人久久大香线蕉av超碰演员| 国产又黄又猛视频| 国产在线一区观看| 好吊色视频一区二区三区| 中日韩免费视频中文字幕| 久草网在线观看| 91黄色免费版| 丰满肥臀噗嗤啊x99av| 一区二区三区四区精品| 欧美精品videosex| 国产精品欧美日韩久久| 风间由美中文字幕在线看视频国产欧美| 日产精品久久久一区二区| 欧美/亚洲一区| 少妇高清精品毛片在线视频| 国产精品91xxx| 在线免费看黄视频| 一区二区三区在线视频观看58| 69亚洲精品久久久蜜桃小说| 日韩一区二区麻豆国产| 国产高清在线观看| 欧美精品videosex极品1| 日韩高清在线| 九九九九精品| 牛夜精品久久久久久久99黑人| 可以免费观看av毛片| 成人三级伦理片| 97在线观看视频免费| 91极品美女在线| 理论片中文字幕| 大胆欧美人体视频| 欧美与亚洲与日本直播| 精品中文字幕人| 欧美日韩免费| 最新免费av网址| 国产欧美日韩视频一区二区 | bt在线麻豆视频| 国产拍精品一二三| 神马影视一区二区| 国产91xxx| 成人av网址在线| 麻豆chinese极品少妇| 欧美久久一区二区| sese在线视频| 国产精品久久中文| 国产欧美日韩影院| 日本wwww视频| 972aa.com艺术欧美| 日韩免费一二三区| 日韩女优视频免费观看| www.欧美日本韩国| 亚洲自拍偷拍视频| 中文字幕一区二区三区乱码图片| 人人干人人干人人| 欧美国产97人人爽人人喊| 波多野结衣小视频| 中文字幕欧美视频在线| 国产一区一一区高清不卡| 日本精品一区二区| 日精品一区二区| 国产成人一区二区在线观看| 欧美三级xxx| 国产经典自拍视频在线观看| 欧美一区三区三区高中清蜜桃| 青青一区二区| 免费av网址在线| 国产色爱av资源综合区| 成人免费一区二区三区| 中文字幕精品久久| 成人免费91| 日本一级黄视频| www.色精品| 久久国产黄色片| 亚洲性日韩精品一区二区| 成人黄页网站视频| 在线观看日韩片| 国产老肥熟一区二区三区| 青娱乐在线视频免费观看| 亚洲高清久久久久久| 色戒汤唯在线| 色爱区成人综合网| 国内精品免费**视频| 国产真实的和子乱拍在线观看| 亚洲成色999久久网站| 天堂√中文最新版在线| 日韩女优中文字幕| 狠狠色丁香久久婷婷综合丁香| 欧美另类视频在线观看| 亚洲精品美女在线观看| 日韩高清在线| 女人床在线观看| 91亚洲午夜精品久久久久久| 波多野结衣视频在线观看| 久久这里有精品视频| 久久夜色电影| 美女一区二区三区视频| 亚洲精品你懂的| 亚洲av综合色区无码一区爱av| 97超碰国产精品女人人人爽| 成人情趣视频| 性高潮免费视频| 欧美影院一区二区| 金瓶狂野欧美性猛交xxxx| 欧美日韩免费观看一区| 国产麻豆视频一区二区| 超碰中文字幕在线| 久久精品美女视频网站| 韩国女主播一区二区三区| 天天干天天干天天干天天干天天干| 亚洲精品日日夜夜| 韩国免费在线视频| 国产99在线免费| 蜜臀精品一区二区三区在线观看| 欧美片一区二区| 中文字幕亚洲字幕| 久久久亚洲欧洲日产| 亚洲视频一二三四| 欧美日韩国产黄|