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

如何使用 Redis 完成 PV,UV 統(tǒng)計?

開發(fā)
本文我們分析了如何使用 Redis 統(tǒng)計 PV 和 UV,通過 Redis 的 INCR? 和 HyperLogLog 數(shù)據(jù)結(jié)構(gòu),可以高效地實現(xiàn) PV 和 UV 的統(tǒng)計。

面試中,我們經(jīng)常會被問題 PV,UV,那么,什么是 PV?什么又是UV?如何使用 Redis 統(tǒng)計 PV 和 UV?這篇文章,我們將詳細(xì)介紹如何在 Java 中使用 Redis 實現(xiàn) PV 和 UV 的統(tǒng)計。

1. 什么是 PV 和 UV?

  • PV(Page Views):指頁面被訪問的總次數(shù)。每一次頁面加載或刷新都會增加一次 PV,無論訪問者是誰。
  • UV(Unique Visitors):指獨立訪客數(shù)。通常通過用戶的唯一標(biāo)識(如用戶 ID、IP 地址、Cookie 等)來統(tǒng)計同一用戶在一定時間范圍內(nèi)的訪問次數(shù),確保每個獨立訪客只計數(shù)一次。

2. Redis 如何統(tǒng)計 PV 和 UV?

(1) 統(tǒng)計 PV

統(tǒng)計 PV 可以通過 Redis 的 INCR 命令實現(xiàn)。這是一個原子操作,可以確保在高并發(fā)情況下準(zhǔn)確計數(shù)。

(2) 統(tǒng)計 UV

統(tǒng)計 UV 可以使用 Redis 的 HyperLogLog 或 Bitmap 數(shù)據(jù)結(jié)構(gòu):

  • HyperLogLog:適合大規(guī)模去重統(tǒng)計,占用內(nèi)存小,但只能估算基數(shù),誤差約為 0.81%。
  • Bitmap:通過位圖記錄用戶訪問情況,適合用戶 ID 范圍固定且不大的場景。

本示例中將使用 HyperLogLog 來統(tǒng)計 UV,因為它適用于大規(guī)模和動態(tài)用戶場景,且實現(xiàn)簡單。

(3) 數(shù)據(jù)結(jié)構(gòu)設(shè)計

假設(shè)我們要統(tǒng)計某個頁面(例如 /home)每日的 PV 和 UV,可以設(shè)計如下 Redis 鍵:

  • pv:home:20250301 — 存儲 /home 頁面在 2025年3月1日的 PV 計數(shù)。
  • uv:home:20250301 — 存儲 /home 頁面在 2025年3月1日的 UV 計數(shù)。

3. 示例代碼

為了更好地理解如何使用 Redis統(tǒng)計 PV,UV,確保在項目中添加 Jedis 依賴。

(1) 示例代碼:

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

publicclass RedisPvUvCounter {
    // Redis 服務(wù)器配置
    privatestaticfinal String REDIS_HOST = "localhost";
    privatestaticfinalint REDIS_PORT = 6379;
    privatestaticfinal String PAGE_NAME = "home"; // 頁面名稱
    privatestaticfinal DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyyMMdd");

    private JedisPool jedisPool;

    // 構(gòu)造方法,初始化 Jedis 連接池
    public RedisPvUvCounter() {
        JedisPoolConfig poolConfig = new JedisPoolConfig();
        poolConfig.setMaxTotal(128); // 最大連接數(shù),可根據(jù)需要調(diào)整
        this.jedisPool = new JedisPool(poolConfig, REDIS_HOST, REDIS_PORT);
    }

    /**
     * 統(tǒng)計 PV
     * @param pageName 頁面名稱
     */
    public void incrementPv(String pageName) {
        String date = LocalDate.now().format(DATE_FORMATTER);
        String pvKey = String.format("pv:%s:%s", pageName, date);
        try (Jedis jedis = jedisPool.getResource()) {
            jedis.incr(pvKey);
        }
    }

    /**
     * 統(tǒng)計 UV
     * @param pageName 頁面名稱
     * @param userId   用戶唯一標(biāo)識
     */
    public void addUv(String pageName, String userId) {
        String date = LocalDate.now().format(DATE_FORMATTER);
        String uvKey = String.format("uv:%s:%s", pageName, date);
        try (Jedis jedis = jedisPool.getResource()) {
            jedis.pfadd(uvKey, userId);
        }
    }

    /**
     * 獲取 PV 統(tǒng)計
     * @param pageName 頁面名稱
     * @return PV 數(shù)量
     */
    public long getPv(String pageName) {
        String date = LocalDate.now().format(DATE_FORMATTER);
        String pvKey = String.format("pv:%s:%s", pageName, date);
        try (Jedis jedis = jedisPool.getResource()) {
            String pvStr = jedis.get(pvKey);
            return pvStr != null ? Long.parseLong(pvStr) : 0;
        }
    }

    /**
     * 獲取 UV 統(tǒng)計
     * @param pageName 頁面名稱
     * @return UV 數(shù)量
     */
    public long getUv(String pageName) {
        String date = LocalDate.now().format(DATE_FORMATTER);
        String uvKey = String.format("uv:%s:%s", pageName, date);
        try (Jedis jedis = jedisPool.getResource()) {
            return jedis.pfcount(uvKey);
        }
    }

    /**
     * 設(shè)置鍵的過期時間(例如 2 天后過期)
     * @param key キー
     * @param seconds 秒數(shù)
     */
    public void setExpire(String key, int seconds) {
        try (Jedis jedis = jedisPool.getResource()) {
            jedis.expire(key, seconds);
        }
    }

    /**
     * 關(guān)閉 Jedis 連接池
     */
    public void close() {
        if (jedisPool != null) {
            jedisPool.close();
        }
    }

    public static void main(String[] args) {
        RedisPvUvCounter counter = new RedisPvUvCounter();

        String page = "home";
        String user1 = "user_001";
        String user2 = "user_002";

        // 模擬 PV 和 UV 統(tǒng)計
        counter.incrementPv(page);
        counter.addUv(page, user1);

        counter.incrementPv(page);
        counter.addUv(page, user1); // 重復(fù)訪問,不增加 UV

        counter.incrementPv(page);
        counter.addUv(page, user2);

        // 設(shè)置鍵的過期時間(可選,根據(jù)實際需求)
        String date = LocalDate.now().format(DATE_FORMATTER);
        String pvKey = String.format("pv:%s:%s", page, date);
        String uvKey = String.format("uv:%s:%s", page, date);
        counter.setExpire(pvKey, 2 * 24 * 60 * 60); // PV 鍵 2 天后過期
        counter.setExpire(uvKey, 2 * 24 * 60 * 60); // UV 鍵 2 天后過期

        // 獲取統(tǒng)計結(jié)果
        long pv = counter.getPv(page);
        long uv = counter.getUv(page);

        System.out.println("PV 總數(shù): " + pv); // 輸出: PV 總數(shù): 3
        System.out.println("UV 總數(shù): " + uv); // 輸出: UV 總數(shù): 2

        // 關(guān)閉連接池
        counter.close();
    }
}

(2) 代碼詳解

①連接 Redis

使用 JedisPool 來管理 Redis 連接池,提升性能和資源利用率。通過配置 JedisPoolConfig 可以調(diào)整連接池的相關(guān)參數(shù),如最大連接數(shù)等。

②統(tǒng)計 PV

  • 使用 INCR 命令對 PV 鍵進(jìn)行自增。
  • 鍵的命名規(guī)范為 pv:{pageName}:{date}(例如 pv:home:20250301)。
  • 每訪問一次頁面,調(diào)用 incrementPv 方法即可增加 PV 計數(shù)。

③統(tǒng)計 UV

  • 使用 PFADD 命令將用戶的唯一標(biāo)識添加到 HyperLogLog 結(jié)構(gòu)中。
  • 鍵的命名規(guī)范為 uv:{pageName}:{date}(例如 uv:home:20250301)。
  • userId 可以是用戶的登錄 ID、IP 地址或其他唯一標(biāo)識。
  • HyperLogLog 會自動去重,因此即使同一個用戶多次訪問,也只會計數(shù)一次。

④獲取 PV 和 UV 數(shù)量

  • PV 使用 GET 命令獲取鍵的值,并轉(zhuǎn)換為 long 類型。如果鍵不存在,則返回 0。
  • UV 使用 PFCOUNT 命令獲取 HyperLogLog 的估算基數(shù)。

⑤設(shè)置鍵的過期時間

為了避免 Redis 中存儲過多歷史數(shù)據(jù),可以為 PV 和 UV 鍵設(shè)置過期時間。本示例中設(shè)置為 2 天后過期??梢愿鶕?jù)實際需求調(diào)整。

⑥關(guān)閉連接池

使用完畢后,調(diào)用 close 方法關(guān)閉 JedisPool,釋放資源。

(3) 運行示例

運行 main 方法后,將模擬以下操作:

  • 用戶 user_001 訪問 /home 頁面,PV 增加 1,UV 增加 1。
  • 用戶 user_001 再次訪問 /home 頁面,PV 增加 1,UV 不變。
  • 用戶 user_002 訪問 /home 頁面,PV 增加 1,UV 增加 1。

最終輸出:

PV 總數(shù): 3
UV 總數(shù): 2

4. 擴(kuò)展與優(yōu)化

(1) 設(shè)置鍵的過期時間

可以在 incrementPv 和 addUv 方法中設(shè)置鍵的過期時間,以自動刪除過期數(shù)據(jù),避免 Redis 內(nèi)存不斷增長。

public void incrementPv(String pageName) {
    String date = LocalDate.now().format(DATE_FORMATTER);
    String pvKey = String.format("pv:%s:%s", pageName, date);
    try (Jedis jedis = jedisPool.getResource()) {
        jedis.incr(pvKey);
        jedis.expire(pvKey, 2 * 24 * 60 * 60); // 設(shè)置過期時間為2天
    }
}

public void addUv(String pageName, String userId) {
    String date = LocalDate.now().format(DATE_FORMATTER);
    String uvKey = String.format("uv:%s:%s", pageName, date);
    try (Jedis jedis = jedisPool.getResource()) {
        jedis.pfadd(uvKey, userId);
        jedis.expire(uvKey, 2 * 24 * 60 * 60); // 設(shè)置過期時間為2天
    }
}

(2) 使用 Lua 腳本優(yōu)化

為了減少 Redis 交互次數(shù),可以使用 Lua 腳本將多個命令合并為一個原子操作。例如,可以在一次 Lua 腳本中同時對 PV 和 UV 進(jìn)行操作。

(3) 分布式環(huán)境下的 Redis 集群

在分布式系統(tǒng)中,可以使用 Redis 集群來提高可用性和擴(kuò)展性。Jedis 提供了 JedisCluster 類來支持 Redis 集群。

(4) 選擇合適的唯一標(biāo)識

為了準(zhǔn)確統(tǒng)計 UV,選擇唯一標(biāo)識非常關(guān)鍵。常見的方式包括:

  • 用戶登錄 ID:最可靠,但僅適用于已認(rèn)證用戶。
  • IP 地址:簡單但可能不夠準(zhǔn)確,受 NAT 和代理影響。
  • Cookie:通過生成唯一的 Cookie 標(biāo)識符,即使用戶未登錄也可以追蹤。

根據(jù)業(yè)務(wù)需求選擇合適的方式,并注意隱私和數(shù)據(jù)保護(hù)。

(5) 持久化與備份

確保 Redis 的持久化機(jī)制(RDB 或 AOF)已正確配置,以防止數(shù)據(jù)丟失。

5. 總結(jié)

本文,我們分析了如何使用 Redis 統(tǒng)計 PV 和 UV,通過 Redis 的 INCR 和 HyperLogLog 數(shù)據(jù)結(jié)構(gòu),可以高效地實現(xiàn) PV 和 UV 的統(tǒng)計。另外,實際工作中,我們可以根據(jù)實際業(yè)務(wù)需求,可以進(jìn)一步優(yōu)化和擴(kuò)展,如設(shè)置鍵過期時間、使用 Lua 腳本、部署 Redis 集群等。

責(zé)任編輯:趙寧寧 來源: 猿java
相關(guān)推薦

2019-10-17 09:25:56

Spark StreaPVUV

2021-08-08 22:08:41

Redis開發(fā)網(wǎng)頁

2016-10-16 13:48:54

多維分析 UVPV

2021-11-01 13:11:45

FlinkPvUv

2021-06-03 08:10:30

SparkStream項目Uv

2021-06-06 13:10:12

FlinkPvUv

2015-12-23 17:08:25

H5

2025-02-13 11:11:53

Redis哨兵代碼

2015-12-14 14:26:56

Linux命令pv

2023-03-08 08:13:33

Pv工具

2017-12-22 10:34:02

大數(shù)據(jù)AI存儲

2024-10-06 12:50:25

2025-06-09 08:21:55

2017-12-18 09:02:42

Red Hat SysAnsible集成

2018-12-05 09:00:00

RedisRedis Strea數(shù)據(jù)庫

2025-03-03 10:25:10

2012-03-28 14:06:43

軟件系統(tǒng)系統(tǒng)測試

2021-08-04 17:55:38

keysRedis數(shù)據(jù)庫

2024-12-17 15:39:33

2024-03-22 12:10:39

Redis消息隊列數(shù)據(jù)庫
點贊
收藏

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

婷婷精品在线观看| 白浆在线视频| 福利电影一区二区三区| 国内精品久久久久久影视8| 毛茸茸多毛bbb毛多视频| 国产亚洲一区二区手机在线观看 | 91欧美激情另类亚洲| 免费在线视频一区二区| 国产成人精品三级高清久久91| 欧美日韩国产电影| 九一国产精品视频| 超碰免费公开在线| 久久午夜色播影院免费高清| 91网站在线看| 亚洲男人天堂网址| 亚洲国产精品第一区二区| 综合欧美国产视频二区| 私密视频在线观看| 日韩在线激情| 日韩欧美精品免费在线| 国产精品视频二| 成年人视频在线免费观看| 成人aa视频在线观看| 成人国产亚洲精品a区天堂华泰| 国产精品100| 欧美日韩午夜| 久久综合国产精品台湾中文娱乐网| 毛茸茸多毛bbb毛多视频| 在线精品自拍| 欧美人妇做爰xxxⅹ性高电影| 欧美日韩亚洲一| 毛片在线导航| 亚洲在线视频一区| 中文有码久久| 91最新在线| 久久久99精品久久| 蜜桃臀一区二区三区| 色香蕉在线视频| 国产精品一区二区视频| 成人做爽爽免费视频| 真实新婚偷拍xxxxx| 久久福利精品| 欧美诱惑福利视频| 成人毛片18女人毛片| 亚洲美女色禁图| 久久人人爽人人爽人人片av高清| 日韩一级片av| 午夜精品久久久久99热蜜桃导演 | 亚洲 国产 欧美一区| 日韩午夜影院| 久久亚洲精品国产精品紫薇| 精品不卡在线| 四虎影视在线播放| 91麻豆高清视频| 久久婷婷人人澡人人喊人人爽| 欧美 日韩 国产 在线| 成人网男人的天堂| 国产精品国产三级欧美二区| 六月婷婷综合网| 成人手机在线视频| 国产伦精品一区二区| 性感美女一级片| 久久综合九色综合97婷婷| 久久av一区二区| 蜜桃免费在线| 亚洲国产精品精华液ab| 特色特色大片在线| 免费电影网站在线视频观看福利| 亚洲国产婷婷综合在线精品| 国产免费黄色小视频| 暖暖成人免费视频| 欧美日韩另类一区| 色哟哟在线观看视频| 精品视频自拍| 国产亚洲欧洲高清| 顶臀精品视频www| 日韩午夜在线| 国产精品三级网站| 亚洲第一页在线观看| 99riav一区二区三区| 日本午夜精品一区二区三区| 日本中文字幕电影在线免费观看| 亚洲另类在线一区| 各处沟厕大尺度偷拍女厕嘘嘘| 亚洲日本网址| 日韩欧美精品在线视频| 人妻少妇精品视频一区二区三区| 国产伦精品一区二区三区千人斩| 久久好看免费视频| 国产尤物在线视频| 久久国产精品99精品国产| 91亚洲精品丁香在线观看| 婷婷亚洲一区二区三区| 中文字幕一区二区三区四区不卡| 欧美狂野激情性xxxx在线观| 3d欧美精品动漫xxxx无尽| 欧美群妇大交群中文字幕| 中文字幕一区三区久久女搜查官| 波多野结衣在线观看一区二区| 欧美理论片在线观看| 亚洲黄色免费观看| 国产成人精品一区二区三区网站观看| 农村寡妇一区二区三区| www视频在线看| 色偷偷久久一区二区三区| 久久精品一卡二卡| 欧美日韩爱爱| 欧美福利视频在线观看| 337p粉嫩色噜噜噜大肥臀| 国产成人av影院| 亚洲精品在线视频观看| 女厕盗摄一区二区三区| 日韩一区和二区| 亚洲午夜精品久久久久久高潮| 狠狠色狠狠色综合日日tαg| 国产精品自拍偷拍| 亚洲人午夜射精精品日韩| 亚洲欧美经典视频| 在线免费视频a| 91蝌蚪精品视频| 久久久精品国产一区二区| 无码人妻精品一区二区三区9厂| 国产999精品久久久久久| 亚洲欧美综合一区| 日韩av电影资源网| 国产午夜精品久久久| 国产一级在线观看视频| 国产剧情一区二区三区| 亚洲最大色综合成人av| 日本少妇一区| 亚洲欧洲在线观看| 国产又黄又爽又色| 2欧美一区二区三区在线观看视频| 日本a在线天堂| 国产在线一区不卡| 日韩在线观看免费| 中文字幕一区二区在线视频| 国产欧美一区二区精品秋霞影院| 欧美日韩国产精品激情在线播放| 国产精品久久久久av蜜臀| 精品激情国产视频| 91精品国产乱码久久久久| 亚洲国产精品99久久久久久久久| 国产女女做受ⅹxx高潮| 伊人成综合网伊人222| 88xx成人精品| 日韩欧美亚洲系列| 色香色香欲天天天影视综合网| 最新中文字幕视频| 久热精品视频| 亚洲午夜激情| 99亚洲男女激情在线观看| 久久精品电影网站| 性欧美8khd高清极品| 亚洲主播在线观看| 五月开心播播网| 久久高清国产| 亚洲一区在线直播| 在线免费观看亚洲| 欧美激情精品久久久久久免费印度 | 亚洲美女少妇无套啪啪呻吟| 久久99精品久久久久子伦| 欧美特黄aaaaaaaa大片| 国产亚洲一级高清| 一区二区三区免费观看视频| 亚洲色图清纯唯美| 国产大尺度视频| 午夜一区二区三区不卡视频| 秋霞久久久久久一区二区| 97成人超碰| 久久99久久99精品免观看粉嫩| 日韩在线观看视频一区| 色噜噜狠狠一区二区三区果冻| 成人信息集中地| 国产成人精品免费看| 国产视频九色蝌蚪| 日韩欧美二区| 成人免费在线看片| 综合在线影院| 欧美成人精品xxx| av女名字大全列表| 欧美日韩电影在线播放| 五月天丁香激情| 91日韩在线专区| www.日本一区| 最新日韩av| 无码免费一区二区三区免费播放| 国产精品高清一区二区| 7m精品福利视频导航| 亚乱亚乱亚洲乱妇| 亚洲国产婷婷香蕉久久久久久| 无码人妻黑人中文字幕| 伊人夜夜躁av伊人久久| 亚洲区免费视频| 国产一区二三区好的| 5月婷婷6月丁香| 天天射综合网视频| 精品1区2区| 韩国三级大全久久网站| 日本韩国欧美精品大片卡二| 国产美女福利在线| 亚洲人午夜精品| 免费观看毛片网站| 欧美精品乱人伦久久久久久| 日韩不卡视频在线| 亚洲男人电影天堂| 国产熟女一区二区| www.亚洲人| 在线a免费观看| 日韩中文字幕麻豆| 国产精品久久..4399| 亚洲成av人电影| 日韩成人av电影在线| 国产精品巨作av| 99在线热播| 亚洲伊人伊成久久人综合网| 日韩av日韩在线观看| av中文在线资源库| 欧美成人第一页| 巨大荫蒂视频欧美大片| 亚洲一区二区精品| 欧美18xxxxx| 亚洲精品成人久久久| 性欧美18一19性猛交| 91麻豆精品国产无毒不卡在线观看| 少妇久久久久久久| 疯狂做受xxxx欧美肥白少妇| 精品少妇久久久| 亚洲精品视频在线| 国语对白在线播放| 亚洲欧洲精品一区二区三区不卡| www.日本高清视频| 国产调教视频一区| 偷拍夫妻性生活| 久久九九全国免费| 这里只有久久精品| 久久久久高清精品| 无码一区二区三区在线| 99riav久久精品riav| 91av在线免费| 91麻豆国产自产在线观看| 在线观看av中文字幕| 91在线丨porny丨国产| 99re久久精品国产| 99re6这里只有精品视频在线观看| 50一60岁老妇女毛片| 99久久精品情趣| 五十路六十路七十路熟婆| 99久久精品免费| 国内精品久久99人妻无码| 91免费看`日韩一区二区| 久久无码人妻精品一区二区三区| 2020国产精品自拍| 一区二区精品免费| 中文字幕成人网| 午夜精品一区二区三级视频| 综合网在线视频| 麻豆chinese极品少妇| 亚洲国产一区二区三区| 中文字幕第15页| 欧美亚洲丝袜传媒另类| 一级全黄少妇性色生活片| 91精品综合久久久久久| www.国产免费| 亚洲国产91色在线| 猫咪在线永久网站| 日韩中文在线中文网三级| gogogogo高清视频在线| 国模极品一区二区三区| 亚洲一二三四| 国产日韩中文字幕在线| 最新精品在线| 久久综合九色综合网站| 久久精品国产68国产精品亚洲| 欧洲xxxxx| 亚洲一区欧美二区| 免费av不卡在线| 懂色av一区二区三区免费看| 内射中出日韩无国产剧情| 国产精品人人做人人爽人人添| 538精品在线视频| 精品国产鲁一鲁一区二区张丽| 无码aⅴ精品一区二区三区| 666欧美在线视频| 亚洲av激情无码专区在线播放| 在线观看国产成人av片| 国产探花视频在线观看| 国产精品91在线| 8848成人影院| 性欧美.com| 最新亚洲激情| 国内自拍第二页| 97精品国产97久久久久久久久久久久 | 亚洲香蕉在线视频| 亚洲成人中文字幕| 免费在线观看av网站| 欧美激情性做爰免费视频| 国产一区二区精品调教| 国产亚洲福利社区| 久久精品亚洲欧美日韩精品中文字幕| 国产97在线 | 亚洲| 国产在线播精品第三| 成人黄色免费网址| 亚洲高清免费一级二级三级| 亚洲熟妇无码久久精品| 亚洲精品久久久久久久久久久久| 日本高清视频在线观看| 18久久久久久| 91精品国产自产在线丝袜啪| 亚欧洲精品在线视频免费观看| 亚洲人体偷拍| 99国产精品免费视频| 国产精品视频第一区| 国产微拍精品一区| 欧美tk—视频vk| 九七久久人人| 国产精品入口福利| 国产一区二区三区电影在线观看 | 欧美极品影院| 国产一区二区黄色| 影视一区二区| www.精品在线| 国产精品拍天天在线| 无码任你躁久久久久久久| 亚洲国产日韩欧美在线图片| 欧美videossex另类| 亚洲影院色无极综合| 99国产精品免费视频观看| 午夜免费高清视频| 国产婷婷精品av在线| 久久久久久无码午夜精品直播| 亚洲精品97久久| 999福利在线视频| 国产精品久久久对白| 国产综合亚洲精品一区二| 欧美高清精品一区二区| 国产精品久久久久影院亚瑟| 免费看污视频的网站| 中文字幕日韩av电影| 99re66热这里只有精品4| 日本电影一区二区三区| 丝袜国产日韩另类美女| 伊人影院综合网| 欧美日韩中文一区| 免费观看久久久久| 91在线观看免费网站| 欧美一区不卡| 中文字幕永久免费| 性感美女极品91精品| 亚洲人视频在线观看| 国产z一区二区三区| 欧洲乱码伦视频免费| 国产精品区在线| 日韩理论片网站| а√中文在线资源库| 性欧美xxxx视频在线观看| 日韩有码中文字幕在线| 国产黄色特级片| 国产精品理论片在线观看| 国产精品视频一二区| 欧美夫妻性视频| 同性恋视频一区| 日韩一级理论片| 最新国产成人在线观看| 成人av无码一区二区三区| 69久久夜色精品国产69| 狠狠做六月爱婷婷综合aⅴ| 国产aaaaa毛片| 亚洲免费观看在线视频| 你懂的网站在线| 欧美一区三区三区高中清蜜桃| 成人免费电影网址| 香蕉视频xxx| 激情懂色av一区av二区av| 国产尤物视频在线| 成人在线中文字幕| 国产亚洲在线| 三级黄色录像视频| 亚洲高清一二三区| 国产精品传媒麻豆hd| 18禁裸男晨勃露j毛免费观看| 2020国产精品| www.日韩高清| 国产成人一区二区三区| 欧美一区在线看| 亚洲综合网在线观看| 制服丝袜一区二区三区| 99在线视频影院| 亚洲一区高清| 91一区一区三区| 国产三级午夜理伦三级| 日韩av理论片| 激情久久一区| 5566中文字幕| 日韩精品中文字幕有码专区| 91成人福利社区| 国产免费黄色av| 亚洲精品视频免费看| 国产福利电影在线| 国产一区二区黄色|