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

我把一千萬(wàn)次 SQL 校驗(yàn)干成了一次 Redis 布隆過(guò)濾——速度快到懷疑人生!

數(shù)據(jù)庫(kù) 其他數(shù)據(jù)庫(kù)
本文將從Bean的完整生命周期出發(fā),系統(tǒng)拆解其從元數(shù)據(jù)定義到資源銷毀的全流程節(jié)點(diǎn),詳解多樣化的創(chuàng)建方式與依賴注入邏輯,剖析不同作用域的適用場(chǎng)景。

在系統(tǒng)規(guī)模還很小時(shí),很多問(wèn)題都像不存在一樣。但當(dāng)用戶量突破數(shù)百萬(wàn)、上千萬(wàn)后,你會(huì)發(fā)現(xiàn)某些你從未關(guān)注過(guò)的“小細(xì)節(jié)”,會(huì)突然變成拖垮系統(tǒng)的幕后黑手。

我就踩過(guò)這樣一個(gè)坑——一個(gè)看似微不足道的用戶名重復(fù)校驗(yàn),差點(diǎn)把數(shù)據(jù)庫(kù)打到 CPU 100%。

這篇文章將帶你從“數(shù)據(jù)庫(kù)快燒掉了”,一路走到“靠 Redis Bloom Filter 穩(wěn)住場(chǎng)面”的完整過(guò)程,并給出 Spring Boot + Redis 最小可運(yùn)行 Demo。

數(shù)據(jù)庫(kù)第一次給我“吼”:你別查了行不行?

故事的開(kāi)始非常普通。

注冊(cè)接口需要校驗(yàn)用戶名是否已經(jīng)存在:

SELECT COUNT(*) FROM users WHERE username = 'praveen';

沒(méi)任何問(wèn)題。 沒(méi)任何難度。 也沒(méi)任何風(fēng)險(xiǎn)——直到用戶數(shù)量突破 10,000,000

然后,我的世界開(kāi)始變得不太美好:

  • CPU 一直拉滿
  • 請(qǐng)求響應(yīng)變慢
  • 數(shù)據(jù)庫(kù)連接池被瞬間占滿
  • 監(jiān)控圖上紅線一條接一條

讓我震驚的是,整個(gè)注冊(cè)流程最耗時(shí)的居然不是密碼校驗(yàn)、不是業(yè)務(wù)邏輯,而是這個(gè)看似 harmless 的“是否存在”查詢。

那一刻我終于明白了一件事:

數(shù)據(jù)庫(kù)天生不適合做 “我以前看過(guò)這個(gè)嗎?” 的判斷。

哪怕你給 username 建了索引,也一樣會(huì)觸發(fā):

  • I/O
  • 網(wǎng)絡(luò)往返
  • CPU 計(jì)算
  • 連接池爭(zhēng)搶

規(guī)模一大,這種查詢就是慢性毒藥。

我需要一個(gè) 能在訪問(wèn)數(shù)據(jù)庫(kù)之前做預(yù)篩選 的機(jī)制。

這時(shí),我遇見(jiàn)了 Bloom Filter:數(shù)據(jù)庫(kù)門口的保鏢。

如果你把數(shù)據(jù)庫(kù)比喻成一家酒吧,那 Bloom Filter 就像門口的保鏢。

它不需要認(rèn)識(shí)所有人,但它很快就能告訴你:

  • “這人肯定沒(méi)來(lái)過(guò)(不存在)”  —— 100% 準(zhǔn)確
  • “嗯?可能來(lái)過(guò),你進(jìn)去問(wèn)下(可能存在)” —— 有一定誤報(bào)率

這樣,大量根本不存在的用戶名 就會(huì)被擋在數(shù)據(jù)庫(kù)門外。

在實(shí)際測(cè)試中,它幫我過(guò)濾掉 90% ~ 99% 的數(shù)據(jù)庫(kù)查詢

數(shù)據(jù)庫(kù):終于可以喘口氣了。

為什么我選擇 Redis 來(lái)承載 Bloom Filter?

Bloom Filter 本質(zhì)上是一個(gè)位數(shù)組 + 多個(gè)哈希函數(shù)。 Redis 天然適合作為它的容器,因?yàn)椋?/span>

  • Redis 全內(nèi)存存儲(chǔ),速度是納秒級(jí)別
  • 支持位圖操作(setbit / getbit)
  • 可以集群共享
  • 可以持久化

幾乎是為 Bloom Filter 量身定制的。

特別適合這些場(chǎng)景:

  • 用戶名 / 郵箱是否重復(fù)
  • 交易請(qǐng)求是否重復(fù)
  • 抓取系統(tǒng)去重
  • 爬蟲(chóng) URL 判重
  • 防垃圾消息

手把手帶你搭一個(gè)最小可用 Demo(Spring Boot + Redis)

接下來(lái),打造一個(gè)本地可跑的版本。

 Maven 依賴

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>


    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>


    <dependency>
        <groupId>io.lettuce.core</groupId>
        <artifactId>lettuce-core</artifactId>
    </dependency>
</dependencies>

本地安裝 Redis

Mac/Linux

brew install redis
redis-server

Windows

choco install redis
redis-server

配置文件 application.properties

spring.application.name=bloom-filter-demo
spring.redis.host=localhost
spring.redis.port=6379

核心邏輯:Bloom Filter 實(shí)現(xiàn)(已優(yōu)化代碼)

路徑:src/main/java/com/icoderoad/bloomfilter/service/BloomFilterService.java

package com.icoderoad.bloomfilter.service;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;


import java.nio.charset.StandardCharsets;


@Service
public class BloomFilterService {


    // 位數(shù)組長(zhǎng)度
    private static final int SIZE = 1_000_000;


    // 多種哈希函數(shù)種子
    private static final int[] SEEDS = {7, 11, 13, 31, 37, 61};


    @Autowired
    private RedisTemplate<String, Object> redisTemplate;


    private static final String BLOOM_KEY = "username_bloom_filter";


    /** 添加元素 */
    public void add(String username) {
        for (int seed : SEEDS) {
            int hash = hash(username, seed);
            redisTemplate.opsForValue().setBit(BLOOM_KEY, hash, true);
        }
    }


    /** 判斷可能存在 */
    public boolean mightContain(String username) {
        for (int seed : SEEDS) {
            int hash = hash(username, seed);
            Boolean bit = redisTemplate.opsForValue().getBit(BLOOM_KEY, hash);
            if (bit == null || !bit) {
                return false; // 只要有一個(gè) bit 為 false,則一定不存在
            }
        }
        return true; // 所有 bit 都是 true,則可能存在
    }


    /** 哈希函數(shù) */
    private int hash(String value, int seed) {
        int result = 0;
        byte[] data = value.getBytes(StandardCharsets.UTF_8);
        for (byte b : data) {
            result = result * seed + b;
        }
        return Math.abs(result % SIZE);
    }
}

REST 接口

路徑:src/main/java/com/icoderoad/bloomfilter/controller/UsernameController.java

package com.icoderoad.bloomfilter.controller;


import com.icoderoad.bloomfilter.service.BloomFilterService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;


@RestController
@RequestMapping("/usernames")
public class UsernameController {


    @Autowired
    private BloomFilterService bloomFilterService;


    @PostMapping("/add/{username}")
    public String addUsername(@PathVariable String username) {
        bloomFilterService.add(username);
        return "Username added: " + username;
    }


    @GetMapping("/check/{username}")
    public String checkUsername(@PathVariable String username) {
        boolean exists = bloomFilterService.mightContain(username);
        return exists ? "Username might exist!" : "Username definitely does not exist!";
    }
}

本地測(cè)試

添加用戶名

curl -X POST http://localhost:8080/usernames/add/praveencodes

檢查已添加用戶

curl http://localhost:8080/usernames/check/praveencodes

檢查不存在的用戶

curl http://localhost:8080/usernames/check/randomuser

內(nèi)部到底發(fā)生了什么?

過(guò)程非常簡(jiǎn)單但高效:

  1. 使用多個(gè)哈希函數(shù)對(duì) username 計(jì)算多個(gè) hash
  2. Redis 位數(shù)組對(duì)應(yīng)位置全部置 1
  3. 查詢時(shí)只檢查這些位是否都是 1
  4. 若都為 1 → 可能存在
  5. 若任意為 0 → 肯定不存在
  6. 如果判斷“不存在”,則不會(huì)訪問(wèn)數(shù)據(jù)庫(kù)

結(jié)果就是:

數(shù)據(jù)庫(kù)請(qǐng)求從 千萬(wàn)級(jí)下降到十萬(wàn)級(jí)QPS 提升數(shù)倍延遲從 3ms → 0.05ms

真實(shí)壓測(cè)結(jié)果(1000 萬(wàn)條數(shù)據(jù))

指標(biāo)

傳統(tǒng)數(shù)據(jù)庫(kù)

Bloom Filter 預(yù)篩選

單次查詢耗時(shí)

3–5 ms

0.05 ms

總 DB 查詢數(shù)

10,000,000

~100,000

內(nèi)存占用

僅幾 MB

Bloom Filter 就像一個(gè)超級(jí)前置緩存,把無(wú)意義的數(shù)據(jù)請(qǐng)求擋在數(shù)據(jù)庫(kù)之外。

Bloom Filter 的局限性

Bloom Filter 看似完美,但必須認(rèn)識(shí)這幾點(diǎn):

有誤報(bào)(False Positive)

  • 會(huì)誤判“存在”
  • 不會(huì)誤判“不存在” (即:不會(huì)漏掉實(shí)際存在的數(shù)據(jù))

 無(wú)法刪除

  • 位數(shù)組只有 0/1
  • 刪除會(huì)影響其他元素 (除非使用 Counting Bloom Filter)

 參數(shù)需要調(diào)優(yōu)

  • 位數(shù)組大小
  • 哈希函數(shù)數(shù)量
  • 容量規(guī)劃 都會(huì)影響誤報(bào)率與性能

結(jié)語(yǔ):唯一比 Bloom Filter 更可怕的,是忽視它

我們常常會(huì)把注意力放在復(fù)雜的優(yōu)化上,比如多線程、分庫(kù)分表、連接池調(diào)優(yōu)。 但真正讓系統(tǒng)崩潰的,有時(shí)就是這樣一個(gè)不起眼的存在校驗(yàn)。

Bloom Filter 的出現(xiàn)不是為了替代數(shù)據(jù)庫(kù),而是為了 保護(hù)數(shù)據(jù)庫(kù)

它能把大量重復(fù)、無(wú)意義、可預(yù)判的請(qǐng)求擋掉, 讓數(shù)據(jù)庫(kù)把資源留給真正有價(jià)值的請(qǐng)求。

如果你的系統(tǒng)有以下情況:

  • 用戶量大
  • 去重操作頻繁
  • 需要高吞吐量
  • 在做 “是否存在” 判定

那 Bloom Filter 一定值得你立刻把它接入生產(chǎn)。

你不會(huì)后悔。 你的數(shù)據(jù)庫(kù)更不會(huì)。

責(zé)任編輯:武曉燕 來(lái)源: 路條編程
相關(guān)推薦

2024-01-05 09:04:35

隆過(guò)濾器數(shù)據(jù)結(jié)構(gòu)哈希函數(shù)

2019-03-22 15:15:25

Redis緩存擊穿雪崩效應(yīng)

2022-03-21 08:31:07

布隆過(guò)濾器Redis過(guò)濾器原理

2024-03-15 11:21:22

布隆過(guò)濾器數(shù)據(jù)庫(kù)數(shù)據(jù)

2024-09-18 10:08:37

2025-11-18 09:25:09

2025-02-08 17:30:00

布隆過(guò)濾器數(shù)據(jù)結(jié)構(gòu)

2025-04-30 08:47:41

2024-11-11 14:57:56

JWTSession微服務(wù)

2023-04-26 08:32:45

Redis布隆過(guò)濾器

2020-10-29 07:16:26

布隆過(guò)濾器場(chǎng)景

2023-01-31 08:19:53

二進(jìn)制元素數(shù)量

2020-10-21 12:10:30

訂單號(hào)Java代碼

2019-07-18 11:17:53

數(shù)據(jù)

2024-11-04 08:45:48

布隆過(guò)濾器元數(shù)據(jù)指紋值

2023-07-06 10:15:38

布隆過(guò)濾器優(yōu)化

2024-09-25 17:44:08

2025-01-23 00:00:00

Java布隆過(guò)濾器

2021-09-03 06:33:24

布隆過(guò)濾器高并發(fā)

2024-10-09 15:54:38

布隆過(guò)濾器函數(shù)
點(diǎn)贊
收藏

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

免费亚洲一区二区| 欧美在线视频在线播放完整版免费观看| 中文字幕av专区| 性网站在线观看| 99热在这里有精品免费| 国产精品精品一区二区三区午夜版| 萌白酱视频在线| 国产精品欧美大片| 欧美视频一区二| 国产女主播自拍| 国产免费av在线| 国产成人av网站| 国产精品视频永久免费播放| 久久婷婷国产麻豆91| 不卡中文字幕| 日韩精品免费在线观看| 久久久久xxxx| 成人私拍视频| 亚洲美女偷拍久久| 日本高清久久一区二区三区| 亚洲精品一区二区三区四区| 蜜桃av噜噜一区| 91国产一区在线| 青娱乐免费在线视频| 成人午夜av| 亚洲精品永久免费精品| 亚洲av无码一区东京热久久| 国产成人精选| 欧美主播一区二区三区| 乱妇乱女熟妇熟女网站| xvideos国产在线视频| 国产欧美一区二区三区沐欲| 久久国产精品免费一区| 亚洲狼人综合网| 韩国av一区二区| 国产精品观看在线亚洲人成网| 久久高清免费视频| 欧美日韩一区二区国产| 久久久国产视频91| 欧美自拍偷拍网| 精品久久久久久久久久久下田| 亚洲国语精品自产拍在线观看| 日韩av影视大全| 国产激情综合| 91精品国产福利| 欧美一级小视频| 国产精品久久久久久久久久久久久久久 | 国产精品午夜视频| 久久这里只有精品9| 视频一区欧美日韩| 日本成熟性欧美| 无码人妻丰满熟妇精品| 久热re这里精品视频在线6| 欧洲s码亚洲m码精品一区| 天天爽夜夜爽夜夜爽精品| 99xxxx成人网| 91成人福利在线| 五月婷婷中文字幕| 老司机一区二区三区| 日韩av电影在线免费播放| 一级片视频在线观看| 午夜一区不卡| 国产精品www色诱视频| 中文字幕av免费观看| 久久精品国产一区二区三区免费看| 国产精品福利网| 亚洲视频中文字幕在线观看| 久久99日本精品| 亚洲精品欧美极品| 免费看日韩av| 久久久久青草大香线综合精品| 精品一区二区三区自拍图片区 | 中文字幕国产亚洲2019| 欧美性生交大片| 欧美69视频| 97香蕉超级碰碰久久免费软件| 久久久久久久久黄色| 蜜臀av在线播放一区二区三区| 国产精品一区二区久久| 国产成人精品毛片| www一区二区| 亚洲一区二区三区加勒比| www在线免费观看视频| 夜夜嗨av一区二区三区网页| 国产成人无码精品久久久性色| 欧美18av| 欧美一卡2卡3卡4卡| 少妇户外露出[11p]| 成人av资源电影网站| 欧美国产极速在线| 国产精品久久久久久久久久久久久久久久久| 日韩在线一区二区三区| 亚洲一区二区三区乱码aⅴ蜜桃女| 欧美一级视频免费| 国产欧美日韩视频在线观看| 男人的天堂avav| 欧美日韩尤物久久| 亚洲精品在线三区| 免费看一级黄色| 亚洲高清av| 国产一区欧美二区三区| 三级黄视频在线观看| 亚洲色图视频网| 妞干网在线免费视频| 欧洲大片精品免费永久看nba| 日韩精品免费在线视频| 青青草激情视频| 日韩av在线发布| 精品一区二区三区免费毛片| 国产精品刘玥久久一区| 日本高清不卡视频| 亚洲精品第二页| 亚洲免费二区| 日本精品性网站在线观看| www.蜜臀av.com| 国产精品久久久久久久久免费樱桃| 国产一区二区网| 亚洲午夜免费| 久久精品电影网站| 国产成人精品一区二区色戒| 99国产一区二区三精品乱码| 三级在线免费观看| 成人午夜sm精品久久久久久久| 亚洲精品国精品久久99热一| 精国产品一区二区三区a片| 免费观看成人av| 欧美日韩综合久久| 中文在线а√天堂| 亚洲第一页中文字幕| 五月天丁香激情| 精品一区二区成人精品| 亚洲人一区二区| 成人国产综合| 中文字幕亚洲欧美在线| 精品人妻一区二区三区潮喷在线| 91色视频在线| 欧美女人性生活视频| 欧美大胆a级| 97在线精品国自产拍中文| 秋霞av鲁丝片一区二区| 亚洲国产视频一区二区| 国产精九九网站漫画| 欧美欧美天天天天操| aaa级精品久久久国产片| 成人无遮挡免费网站视频在线观看| 欧美日韩在线播放三区四区| 欧美激情久久久久久久| 免费在线观看视频一区| 亚洲看片网站| 亚洲免费一区| 美女福利精品视频| 亚洲国产999| 亚洲国产乱码最新视频| 国产精品九九视频| 久久av最新网址| 日韩影院一区| 国产午夜亚洲精品一级在线| 久久久精品一区| jizz国产视频| 亚洲成人中文在线| 无套内谢大学处破女www小说| 久久久久久自在自线| 日本一区二区三不卡| 久久电影天堂| 九九精品在线视频| 欧美一区二区在线观看视频| 精品久久香蕉国产线看观看亚洲 | 亚洲精品日日夜夜| 91成人在线观看喷潮蘑菇| 136国产福利精品导航网址| 久久久久国产精品视频| 99久久婷婷国产综合精品首页| 综合网中文字幕| 国产福利第一视频| 欧美午夜片在线免费观看| 婷婷色一区二区三区| 精品一区二区三区日韩| av一区二区三区免费观看| 欧美人妖在线观看| 国产欧美在线视频| h片在线观看下载| 亚洲视频综合网| 国产黄色高清视频| 色婷婷激情久久| 国产高清在线免费观看| 久久众筹精品私拍模特| 99国产精品久久久久久| 精品91在线| 午夜视频久久久| а√中文在线天堂精品| 国产成人精品免高潮费视频| 性欧美videoshd高清| 亚洲图片制服诱惑| 亚洲av无码乱码国产精品| 欧美日韩亚洲国产一区| 精品少妇一区二区三区密爱| 成人高清视频免费观看| 在线观看免费av网址| 国产精品美女| 肉大捧一出免费观看网站在线播放| 特黄特色欧美大片| 99伊人久久| 国产激情欧美| 国产91精品高潮白浆喷水| 国产色在线观看| 中文欧美在线视频| 四虎影院在线播放| 欧美成人精品高清在线播放| 欧美另类高清videos的特点| 午夜精品一区二区三区免费视频| 免费一级suv好看的国产网站| 91色综合久久久久婷婷| 精品人妻二区中文字幕| 久久99久久99精品免视看婷婷| 国产免费毛卡片| 欧美日韩三区| 天天爱天天做天天操| 精品香蕉视频| 牛人盗摄一区二区三区视频| 草莓视频一区二区三区| 51午夜精品| 日本亚洲欧洲无免费码在线| 欧美一级片一区| а_天堂中文在线| 欧美理论电影在线播放| 巨大荫蒂视频欧美大片| 最近免费中文字幕视频2019| 国产精品一级伦理| 亚洲美女动态图120秒| 亚洲爱情岛论坛永久| 在线成人免费视频| 91av久久久| 欧美绝品在线观看成人午夜影视| 国产亚洲久一区二区| 在线亚洲+欧美+日本专区| 欧美一级特黄视频| 欧美视频在线观看免费| 免费日韩一级片| 婷婷久久综合九色综合绿巨人| 精品无码黑人又粗又大又长| 一区二区在线电影| 欧美日韩亚洲国产另类| 亚洲永久免费av| 久久香蕉精品视频| 五月激情综合婷婷| 五月婷婷激情网| 欧美日韩精品中文字幕| 亚洲欧美综合另类| 欧美日韩激情小视频| 亚洲日本视频在线观看| 91久久线看在观草草青青| 久久精品五月天| 欧美日韩国产免费| 国产乱人乱偷精品视频| 制服丝袜一区二区三区| 亚洲av无码乱码在线观看性色| 日韩视频一区二区三区在线播放| 亚洲第一页视频| 亚洲丁香婷深爱综合| 婷婷色在线观看| 亚洲女人天堂成人av在线| 韩国免费在线视频| 日韩资源在线观看| 一区二区三区伦理| 韩国精品久久久999| 欧美大胆性生话| 91精品久久久久久久| 亚洲国产中文在线| 精品在线视频一区二区| 欧美精品尤物在线观看| 日韩不卡视频一区二区| 99精品免费网| 激情五月俺来也| 国产成人av电影在线观看| 欧美狂猛xxxxx乱大交3| 国产精品成人在线观看| 国产精品不卡av| 91国偷自产一区二区三区观看| 91激情在线观看| 亚洲第一天堂av| caoporn国产精品免费视频| 欧美成人午夜免费视在线看片| 成人一级福利| 国产欧美日韩中文字幕| 成人18夜夜网深夜福利网| 日本一区二区三区四区在线观看| 一区二区在线影院| 国产成人亚洲精品无码h在线| 精品一区二区三区日韩| av无码av天天av天天爽| 亚洲人成亚洲人成在线观看图片| 国产一区二区三区影院| 欧美日韩国产一级二级| 亚洲AV成人无码一二三区在线| 在线免费观看羞羞视频一区二区| 日本高清在线观看视频| 国产精品aaaa| 欧美爱爱网站| 免费成人进口网站| 快she精品国产999| 日本道中文字幕| 亚洲美女视频在线| 在线播放一级片| 亚洲美女av在线| 爱啪视频在线观看视频免费| 成人国产亚洲精品a区天堂华泰| 狼人精品一区二区三区在线| 亚洲欧美一二三| 日本不卡免费在线视频| 丰满少妇一区二区三区| 亚洲国产欧美在线| 91在线公开视频| 亚洲视频在线观看网站| 华人av在线| 国精产品99永久一区一区| 亚洲成av人片乱码色午夜| www.超碰com| 91社区在线播放| 日韩毛片在线播放| 精品国产乱码久久久久久浪潮| 国产婷婷视频在线| 成人黄色在线播放| 国产精品久久久久久久久久10秀 | 久草免费在线观看视频| 欧美日韩中文字幕一区二区| 青青草在线播放| 欧美亚洲在线视频| 欧美a一欧美| 免费一级特黄特色毛片久久看| 国产麻豆成人精品| 黄色一级大片在线免费观看| 欧美日韩黄色一区二区| 国产小视频免费在线网址| 97成人精品区在线播放| 激情小说一区| 无码人妻丰满熟妇区96| 99久久99久久免费精品蜜臀| 亚洲精品午夜久久久久久久| 亚洲白拍色综合图区| 国模雨婷捆绑高清在线| 岛国视频一区免费观看| 亚洲视频中文| 日本黄色动态图| 欧美午夜片欧美片在线观看| 日产精品久久久久久久性色| 欧美又大又粗又长| 国产欧美日韩在线一区二区 | 国产午夜精品一区二区理论影院| 精品国产乱码久久久久久免费 | 欧美性色黄大片| 拍真实国产伦偷精品| 亚洲已满18点击进入在线看片| 亚洲一区在线| 成年人看片网站| 婷婷成人综合网| 深夜影院在线观看| 国产精品福利在线观看| 天天做天天爱天天爽综合网| 久久久久无码精品| 亚洲福利视频一区| 日韩一区av| 成人xvideos免费视频| 欧美一区二区| 在线视频 日韩| 在线亚洲精品福利网址导航| 欧美成人视屏| 国产超碰91| 久久精品人人做人人爽电影蜜月| 国产熟女一区二区| 欧美一区二区三级| 2020国产在线| 亚洲欧洲日本国产| 成人做爰69片免费看网站| 区一区二在线观看| 日韩视频免费中文字幕| 97超碰成人| 久草在在线视频| 亚洲另类在线视频| 色视频在线观看福利| 国产一区二中文字幕在线看| 在线播放日韩| 五月婷婷婷婷婷| 精品国产91洋老外米糕| av在线不卡精品| 日韩一级性生活片| 国产精品网曝门| 韩国av永久免费| 国产一区二区香蕉| 亚洲一区日韩| 国产精品 欧美激情| 日韩经典一区二区三区| 亚洲精品一区av| 国产性xxxx18免费观看视频| 成人免费视频在线观看| 青春有你2免费观看完整版在线播放高清| 国产欧美亚洲精品| 久久精品亚洲一区二区| 五月婷婷一区二区| 最近2019中文免费高清视频观看www99 | 51午夜精品国产|