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

排行榜的五種方案!

數(shù)據(jù)庫 其他數(shù)據(jù)庫
今天我想和大家分享 6 種不同的排行榜實(shí)現(xiàn)方案,從簡(jiǎn)單到復(fù)雜,從單機(jī)到分布式,希望能幫助大家在實(shí)際工作中做出更合適的選擇。

引言

在工作的這些年中,我見證過太多團(tuán)隊(duì)在實(shí)現(xiàn)排行榜功能時(shí)踩過的坑。

今天我想和大家分享 6 種不同的排行榜實(shí)現(xiàn)方案,從簡(jiǎn)單到復(fù)雜,從單機(jī)到分布式,希望能幫助大家在實(shí)際工作中做出更合適的選擇。

有些小伙伴在工作中可能會(huì)覺得:不就是個(gè)排行榜嗎?搞個(gè)數(shù)據(jù)庫排序不就完了?

但實(shí)際情況遠(yuǎn)比這復(fù)雜得多。

當(dāng)數(shù)據(jù)量達(dá)到百萬級(jí)、千萬級(jí)時(shí),簡(jiǎn)單的數(shù)據(jù)庫查詢可能就會(huì)成為系統(tǒng)的瓶頸。

接下來,我將為大家詳細(xì)剖析 6 種不同的實(shí)現(xiàn)方案,希望對(duì)你會(huì)有所幫助。

方案一:數(shù)據(jù)庫直接排序

適用場(chǎng)景:數(shù)據(jù)量?。ㄈf級(jí)以下),實(shí)時(shí)性要求不高

這是最簡(jiǎn)單直接的方案,幾乎每個(gè)開發(fā)者最先想到的方法。

示例代碼如下:

public List<UserScore> getRankingList() {
    String sql = "SELECT user_id, score FROM user_scores ORDER BY score DESC LIMIT 100";
    return jdbcTemplate.query(sql, new UserScoreRowMapper());
}

優(yōu)點(diǎn)

  • 實(shí)現(xiàn)簡(jiǎn)單
  • 代碼維護(hù)成本低
  • 適合數(shù)據(jù)量小的場(chǎng)景

缺點(diǎn)

  • 數(shù)據(jù)量大時(shí)性能急劇下降
  • 每次查詢都需要全表掃描
  • 高并發(fā)下數(shù)據(jù)庫壓力大

架構(gòu)圖如下

圖片圖片

方案二:緩存+定時(shí)任務(wù)

適用場(chǎng)景:數(shù)據(jù)量中等(十萬級(jí)),可以接受分鐘級(jí)延遲

這個(gè)方案在方案一的基礎(chǔ)上引入了緩存機(jī)制。

示例代碼如下:

@Scheduled(fixedRate = 60000) // 每分鐘執(zhí)行一次
public void updateRankingCache() {
    List<UserScore> rankings = userScoreDao.getTop1000Scores();
    redisTemplate.opsForValue().set("ranking_list", rankings);
}

public List<UserScore> getRankingList() {
    return (List<UserScore>) redisTemplate.opsForValue().get("ranking_list");
}

優(yōu)點(diǎn)

  • 減輕數(shù)據(jù)庫壓力
  • 查詢速度快(O(1))
  • 實(shí)現(xiàn)相對(duì)簡(jiǎn)單

缺點(diǎn)

  • 數(shù)據(jù)有延遲(取決于定時(shí)任務(wù)頻率)
  • 內(nèi)存占用較高
  • 排行榜更新不及時(shí)

架構(gòu)圖如下

圖片圖片

方案三:Redis有序集合

適用場(chǎng)景:數(shù)據(jù)量大(百萬級(jí)),需要實(shí)時(shí)更新

Redis的有序集合(Sorted Set)是實(shí)現(xiàn)排行榜的利器。

示例代碼如下:

public void addUserScore(String userId, double score) {
    redisTemplate.opsForZSet().add("ranking", userId, score);
}

public List<String> getTopUsers(int topN) {
    return redisTemplate.opsForZSet().reverseRange("ranking", 0, topN - 1);
}

public Long getUserRank(String userId) {
    return redisTemplate.opsForZSet().reverseRank("ranking", userId) + 1;
}

優(yōu)點(diǎn)

  • 高性能(O(log(N))時(shí)間復(fù)雜度)
  • 支持實(shí)時(shí)更新
  • 天然支持分頁
  • 可以獲取用戶排名

缺點(diǎn)

  • 單機(jī)Redis內(nèi)存有限
  • 需要考慮Redis持久化
  • 分布式環(huán)境下需要額外處理

架構(gòu)圖如下

圖片圖片

方案四:分片+Redis集群

適用場(chǎng)景:超大規(guī)模數(shù)據(jù)(千萬級(jí)以上),高并發(fā)場(chǎng)景

當(dāng)單機(jī)Redis無法滿足需求時(shí),可以采用分片方案。

示例代碼如下:

// 
public void addUserScore(String userId, double score) {
    RScoredSortedSet<String> set = redisson.getScoredSortedSet("ranking:" + getShard(userId));
    set.add(score, userId);
}

private String getShard(String userId) {
    // 簡(jiǎn)單哈希分片
    int shard = Math.abs(userId.hashCode()) % 16;
    return "shard_" + shard;
}

在這里我們以Redisson客戶端為例。

優(yōu)點(diǎn)

  • 水平擴(kuò)展能力強(qiáng)
  • 可以支持超大規(guī)模數(shù)據(jù)
  • 高并發(fā)下性能穩(wěn)定

缺點(diǎn)

  • 架構(gòu)復(fù)雜度高
  • 跨分片查詢困難
  • 需要維護(hù)分片策略

架構(gòu)圖如下

圖片圖片

方案五:預(yù)計(jì)算+分層緩存

適用場(chǎng)景:排行榜更新不頻繁,但訪問量極大

這種方案結(jié)合了預(yù)計(jì)算和多級(jí)緩存。

示例代碼如下:

@Scheduled(cron = "0 0 * * * ?") // 每小時(shí)計(jì)算一次
public void precomputeRanking() {
    Map<String, Integer> rankings = calculateRankings();
    redisTemplate.opsForHash().putAll("ranking:hourly", rankings);
    
    // 同步到本地緩存
    localCache.putAll(rankings);
}

public Integer getUserRank(String userId) {
    // 1. 先查本地緩存
    Integer rank = localCache.get(userId);
    if (rank != null) return rank;
    
    // 2. 再查Redis
    rank = (Integer) redisTemplate.opsForHash().get("ranking:hourly", userId);
    if (rank != null) {
        localCache.put(userId, rank); // 回填本地緩存
        return rank;
    }
    
    // 3. 最后查DB
    return userScoreDao.getUserRank(userId);
}

優(yōu)點(diǎn)

  • 訪問性能極高(本地緩存O(1))
  • 減輕Redis壓力
  • 適合讀多寫少場(chǎng)景

缺點(diǎn)

  • 數(shù)據(jù)實(shí)時(shí)性差
  • 預(yù)計(jì)算資源消耗大
  • 實(shí)現(xiàn)復(fù)雜度高

架構(gòu)圖如下

圖片圖片

方案六:實(shí)時(shí)計(jì)算+流處理

適用場(chǎng)景:需要實(shí)時(shí)更新且數(shù)據(jù)量極大的社交平臺(tái)

這種方案采用流處理技術(shù)實(shí)現(xiàn)實(shí)時(shí)排行榜。

使用Apache Flink示例如下:

DataStream<UserAction> actions = env.addSource(new UserActionSource());

DataStream<Tuple2<String, Double>> scores = actions
    .keyBy(UserAction::getUserId)
    .process(new ProcessFunction<UserAction, Tuple2<String, Double>>() {
        private MapState<String, Double> userScores;
        
        public void open(Configuration parameters) {
            MapStateDescriptor<String, Double> descriptor = 
                new MapStateDescriptor<>("userScores", String.class, Double.class);
            userScores = getRuntimeContext().getMapState(descriptor);
        }
        
        public void processElement(UserAction action, Context ctx, Collector<Tuple2<String, Double>> out) {
            double newScore = userScores.getOrDefault(action.getUserId(), 0.0) + calculateScore(action);
            userScores.put(action.getUserId(), newScore);
            out.collect(new Tuple2<>(action.getUserId(), newScore));
        }
    });

scores.keyBy(0)
      .process(new RankProcessFunction())
      .addSink(new RankingSink());

優(yōu)點(diǎn)

  • 真正的實(shí)時(shí)更新
  • 可處理超高并發(fā)
  • 支持復(fù)雜計(jì)算邏輯

缺點(diǎn)

  • 架構(gòu)復(fù)雜度高
  • 運(yùn)維成本高
  • 需要專業(yè)團(tuán)隊(duì)維護(hù)

架構(gòu)圖如下

圖片圖片

方案對(duì)比與選擇

方案

數(shù)據(jù)量

實(shí)時(shí)性

復(fù)雜度

適用場(chǎng)景

數(shù)據(jù)庫排序

個(gè)人項(xiàng)目、小規(guī)模應(yīng)用

緩存+定時(shí)任務(wù)

中小型應(yīng)用,可接受延遲

Redis有序集合

大型應(yīng)用,需要實(shí)時(shí)更新

分片+Redis集群

超大

超大型應(yīng)用,超高并發(fā)

預(yù)計(jì)算+分層緩存

中高

讀多寫少,訪問量極大

實(shí)時(shí)計(jì)算+流處理

超大

實(shí)時(shí)

極高

社交平臺(tái),需要實(shí)時(shí)排名

總結(jié)

在選擇排行榜實(shí)現(xiàn)方案時(shí),我們需要綜合考慮以下幾個(gè)因素:

  1. 數(shù)據(jù)規(guī)模:數(shù)據(jù)量大小直接決定了我們選擇哪種方案
  2. 實(shí)時(shí)性要求:是否需要秒級(jí)更新,還是分鐘級(jí)甚至小時(shí)級(jí)都可以接受
  3. 并發(fā)量:系統(tǒng)的預(yù)期訪問量是多少
  4. 開發(fā)資源:團(tuán)隊(duì)是否有足夠的技術(shù)能力維護(hù)復(fù)雜方案
  5. 業(yè)務(wù)需求:排行榜的計(jì)算邏輯是否復(fù)雜

對(duì)于大多數(shù)中小型應(yīng)用,方案二(緩存+定時(shí)任務(wù))或方案三(Redis有序集合)已經(jīng)足夠。如

果業(yè)務(wù)增長(zhǎng)迅速,可以逐步演進(jìn)到方案四(分片+Redis集群)。

而對(duì)于社交平臺(tái)等需要實(shí)時(shí)更新的場(chǎng)景,則需要考慮方案五(預(yù)計(jì)算+分層緩存)或方案六(實(shí)時(shí)計(jì)算+流處理),但要做好技術(shù)儲(chǔ)備和架構(gòu)設(shè)計(jì)。

最后,無論選擇哪種方案,都要做好監(jiān)控和性能測(cè)試。排行榜作為高頻訪問的功能,其性能直接影響用戶體驗(yàn)。

建議在實(shí)際環(huán)境中進(jìn)行壓測(cè),根據(jù)測(cè)試結(jié)果調(diào)整方案。

希望這六種方案的詳細(xì)解析能幫助大家在工作中做出更合適的選擇。


記住,沒有最好的方案,只有最適合的方案。

責(zé)任編輯:武曉燕 來源: 蘇三說技術(shù)
相關(guān)推薦

2013-08-23 09:41:19

2025-03-10 12:10:00

RedisJava排行榜

2022-06-17 12:10:07

RPA機(jī)器人流程自動(dòng)化

2014-07-30 12:56:56

2013-09-27 11:32:29

編程語言

2017-12-12 10:26:55

醫(yī)療 解決

2022-06-08 13:50:41

AI專業(yè)排行

2022-08-09 08:29:50

TIOBE編程語言排行榜程序員

2020-03-07 22:01:58

編程語言JavaPython

2019-10-21 10:59:52

編程語言JavaC

2024-05-15 17:21:18

RedisSpring數(shù)據(jù)

2013-06-28 15:57:55

蘋果App Store

2013-04-01 09:50:15

Web框架Web

2020-08-13 11:55:33

編程語言JavaPython

2019-07-23 14:14:59

編程語言JavaPython

2020-02-19 20:20:43

APP排行榜用戶

2023-03-15 08:03:31

2020-02-14 09:19:12

編程語言JavaPython

2021-07-07 05:42:24

編程語言開發(fā)

2021-09-23 10:50:42

編程語言Python排行
點(diǎn)贊
收藏

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

日韩一区av在线| 伊人色综合久久天天人手人婷| 2019中文字幕免费视频| 亚洲色成人网站www永久四虎| www.26天天久久天堂| 亚洲人精品午夜| 久久综合九色综合欧美就去吻| 亚洲精品短视频| jizz大全欧美jizzcom| 尤物yw193can在线观看| 久久影院午夜片一区| 成人免费激情视频| www.国产毛片| 在线 亚洲欧美在线综合一区| 一区二区欧美久久| 三级黄色片网站| 欧美激情精品| 欧美三级视频在线| 国产日韩一区二区在线观看| 欧美xxxx黑人又粗又长| 国产精品久久看| 蜜桃狠狠色伊人亚洲综合网站| 国产三级三级在线观看| 日韩高清一级片| 欧亚精品中文字幕| 成人a免费视频| 内射中出日韩无国产剧情| 在线观看亚洲精品福利片| 日韩欧美aaa| 成人午夜视频在线观看免费| 免费av在线网址| 国产日韩欧美精品一区| 久久久久国产精品视频| 色欲久久久天天天综合网| 国产资源精品在线观看| 国产精品丝袜视频| 高潮毛片又色又爽免费| 亚洲欧美高清| 久久久久在线观看| 亚洲精品天堂网| 狠狠做深爱婷婷综合一区| 亚洲精品久久久久久久久久久久| 极品人妻一区二区| 电影一区中文字幕| 91精品一区二区三区综合在线爱| 中文子幕无线码一区tr| 欧洲精品一区色| 韩国中文字幕2020精品| 久久久久久久网| 看欧美日韩国产| 日色在线视频| 久久久久国产精品麻豆| 日本免费高清一区二区| 成人在线二区| 中文字幕一区免费在线观看| 亚洲精品中文字幕乱码三区不卡| 国产乱子伦三级在线播放| 国产欧美日韩另类视频免费观看 | 亚洲欧美一级| 91精品国产美女浴室洗澡无遮挡| 午夜大片在线观看| 视频成人永久免费视频| 亚洲国产高清高潮精品美女| 六十路息与子猛烈交尾| 日韩三级av| 国产亚洲欧美另类中文| 五月天婷婷丁香网| 91成人精品视频| 欧美成人一区二区三区电影| 成人情视频高清免费观看电影| 翔田千里88av中文字幕| 中文字幕一区二区三区乱码图片| 欧美精品videosex极品1| 日本一区二区三区免费视频| 性欧美videos另类喷潮| 国产成人av在线播放| 一级黄色短视频| 国产suv精品一区二区883| 狠狠色狠狠色综合人人| 黄色国产在线| 综合精品久久久| 欧美精品一区二区三区三州| 国产超碰精品| 欧美一区二区三区公司| 久久福利小视频| 欧美亚洲国产精品久久| 欧美成人中文字幕| 中文字幕av影院| 国产一区二区三区在线观看精品 | 夜夜狠狠擅视频| 韩国精品在线观看| 国内外成人免费视频| av免费观看一区二区| 亚洲精品欧美激情| 国产精品97在线| 另类视频一区二区三区| 日韩成人免费视频| 国产精品嫩草影院俄罗斯| 在线午夜精品| 亚洲一区二区三区久久 | 2一3sex性hd| 大胆人体一区二区| 欧美丰满美乳xxx高潮www| 精品一区二区视频在线观看| 日韩久久久久| 81精品国产乱码久久久久久| 国产又爽又黄免费软件| 91久色porny| 久久男人资源站| 欧美激情三区| 亚洲图中文字幕| 国产精彩视频在线观看| 麻豆精品一区二区综合av| 精品国产综合| 青草青在线视频| 欧美乱妇15p| 一级黄色片网址| 国产精品普通话对白| 亚洲影视中文字幕| 麻豆91在线| 欧美日韩人人澡狠狠躁视频| 深夜视频在线观看| 99精品视频在线观看播放| 日本国产一区二区三区| 囯产精品久久久久久| 1000部国产精品成人观看| 蜜臀av午夜一区二区三区| 国产精品45p| 欧美精品在线免费观看| 91中文字幕在线播放| 日本一区二区三区dvd视频在线| 欧美国产日韩在线观看| 日韩久久久久久久| 欧美xxxxxx| 亚洲精品第一页| 国产一级片免费| 国产成人午夜精品影院观看视频 | 青青草视频一区| 欧美乱偷一区二区三区在线| www.综合| 亚洲国产日韩欧美综合久久| 亚洲一区 视频| 成人性生交大片| 男人天堂av片| 美女av一区| 91av在线看| 四虎精品在永久在线观看| 亚洲va欧美va人人爽午夜| 国产精品成人免费一区久久羞羞| 国产无遮无挡120秒| 欧美精品国产一区二区| 91在线精品观看| 免费在线观看的电影网站| 日韩女优电影在线观看| 午夜69成人做爰视频| 成人午夜在线视频| www.爱色av.com| 国产精品美女久久久久久不卡 | y111111国产精品久久久| 欧美激情videoshd| 天堂中文在线观看视频| 一本到不卡精品视频在线观看| 中文字幕一区二区人妻在线不卡| 国产精品xxxav免费视频| 77777亚洲午夜久久多人| 免费在线超碰| 欧美乱熟臀69xxxxxx| 久草福利资源在线观看| 91丨porny丨最新| 久久精品人人爽| 永久av免费在线观看| 中文字幕午夜精品一区二区三区| 国产精品二区三区四区| 亚洲欧洲日本韩国| 中文字幕亚洲一区在线观看| 亚洲av无码专区在线| 精品日韩中文字幕| youjizz亚洲女人| 国产精品亚洲一区二区三区妖精| 欧美黑人在线观看| 久久99久久人婷婷精品综合 | 欧美国产国产综合| 91精品视频国产| 亚洲黑丝一区二区| 日韩少妇中文字幕| 综合久久成人| 国产精品第七影院| 欧美hdxxxxx| 亚洲色图35p| www.天天干.com| 色av成人天堂桃色av| 欧美精品一二三| 一区二区三区久久久久| 国产在线精品不卡| 中国丰满人妻videoshd| 久久精品久久久| 欧美大香线蕉线伊人久久| 日本亚洲欧洲无免费码在线| 91精品国产91久久久久久不卡| 男人和女人做事情在线视频网站免费观看| 欧美α欧美αv大片| 波多野结衣大片| 午夜电影网亚洲视频| 午夜精品福利在线视频| 久久久精品免费网站| 国内精品免费视频| 精品一区二区三区久久久| 日韩精品一区二区三区久久| 午夜国产欧美理论在线播放| 亚洲精品乱码久久久久久蜜桃91| 欧美尿孔扩张虐视频| 91一区二区三区| 久久久久久久性潮| 日本一区二区三区在线播放| av在线加勒比| 成人国产综合| 亚洲欧美国产精品专区久久| 亚洲av无码一区二区三区性色| 欧美日韩一区二区三区在线看 | a免费在线观看| 一区二区三区四区在线观看视频| 天堂中文网在线| 欧美大胆人体bbbb| 国产三区在线播放| 欧美日韩亚洲综合一区二区三区| 台湾佬中文在线| 黑人欧美xxxx| 91视频免费网址| 午夜欧美在线一二页| 久久中文字幕在线观看| 亚洲自拍偷拍综合| 欧美成人aaa片一区国产精品| 亚洲欧美怡红院| 免费看一级黄色| 中文字幕第一区第二区| 精品无人区无码乱码毛片国产| 99免费精品在线观看| 91九色蝌蚪porny| 超碰97久久| 欧美日韩另类在线| 国产大屁股喷水视频在线观看| 久久精品视频在线免费观看 | 中文无字幕一区二区三区| 草草地址线路①屁屁影院成人| 不卡的av网站| 丰满少妇在线观看资源站| 91免费观看视频在线| 少妇饥渴放荡91麻豆| 久久久蜜桃精品| 熟女少妇内射日韩亚洲| 国产欧美精品一区二区色综合| 波多野结衣a v在线| 国产欧美一区二区精品性色超碰| 美女爆乳18禁www久久久久久| 久久网站最新地址| 色综合99久久久无码国产精品| 亚洲国产精品传媒在线观看| www.涩涩爱| 综合色中文字幕| 久草视频免费在线| 亚洲最新视频在线观看| 日产欧产va高清| 色菇凉天天综合网| 一卡二卡三卡在线观看| 视频在线日韩| 欧美国产乱视频| 爱看av在线| 日本道色综合久久影院| 日韩制服诱惑| 97免费资源站| 亚洲精品亚洲人成在线观看| 日产精品一线二线三线芒果| 欧美oldwomenvideos| 久久久天堂国产精品| 国产亚洲在线| 污色网站在线观看| 国产美女精品一区二区三区| 国产综合内射日韩久| 26uuu国产日韩综合| 日韩av片在线免费观看| 一区二区成人在线视频| 羞羞影院体验区| 制服丝袜av成人在线看| 日本精品一二区| 国产亚洲精品va在线观看| 高潮毛片在线观看| 欧美一区二区三区图| 亚洲色图图片| 九九九九精品九九九九| 日韩精品久久| 少妇高潮毛片色欲ava片| 51社区在线成人免费视频| 午夜av一区二区三区| 日本网站免费观看| 欧美亚洲高清一区二区三区不卡| 精品国产伦一区二区三| 亚洲欧美精品中文字幕在线| av黄色在线| 国产成人精品午夜| 成功精品影院| 亚洲三级一区| 美女诱惑黄网站一区| 少妇献身老头系列| 亚洲国产成人午夜在线一区| 日本少妇在线观看| 91麻豆精品国产91久久久更新时间| 神马亚洲视频| 色综合久久中文字幕综合网小说| 精品国模一区二区三区| 国产精品免费看一区二区三区| 日韩在线理论| 欧美 国产 小说 另类| 粉嫩av亚洲一区二区图片| 黄色片网站在线播放| 欧美午夜片欧美片在线观看| 亚洲精品视频专区| 久久九九全国免费精品观看| 搜成人激情视频| 狠狠色狠狠色综合人人| 欧美女激情福利| 91aaa精品| 韩国中文字幕2020精品| 日韩中文字幕av| 在线日本欧美| 免费电影一区| 国产精品美女| 美国黄色a级片| 福利二区91精品bt7086| 天堂在线资源库| 性日韩欧美在线视频| 国产suv精品一区| 国产av熟女一区二区三区 | 三级黄色片免费看| 国产精品久久久久久久岛一牛影视 | 女同性恋一区二区三区| 亚洲男帅同性gay1069| 一级黄色免费看| 久久精品国产视频| 欧洲午夜精品| 手机成人av在线| 国精产品一区一区三区mba桃花 | 99久久99久久精品国产片桃花 | 精品一区免费av| 永久免费观看片现看| 欧美综合在线视频| lutube成人福利在线观看| 国产精品视频免费观看www| 成人嫩草影院| 国产九九在线观看| 国产精品国产精品国产专区不片| 一区二区小视频| 久久久精品影院| 亚洲三级av| 免费国产黄色网址| 久久精品日韩一区二区三区| 老熟妇一区二区三区| 中文字幕欧美视频在线| 91精品福利观看| 欧美在线观看视频免费| 99久久婷婷国产| 一级片在线免费播放| 色av吧综合网| 亚洲国产高清在线观看| 男人添女荫道口图片| www国产精品av| 中文字幕日韩第一页| 久久精品久久久久久| 福利片在线一区二区| 成人在线观看黄| 欧美日韩卡一| 欧美激情视频在线免费观看 欧美视频免费一| 99久久久国产| 日本欧美黄色片| 日本一区二区动态图| wwwav网站| 欧美在线一区二区三区四| 日韩综合网站| 亚洲高清无码久久| 欧美日韩专区在线| 国产又色又爽又黄刺激在线视频| 快播亚洲色图| 国产一区二区三区四区五区美女| 久久在线视频精品| 永久555www成人免费| 亚洲成人偷拍| 亚洲成人福利在线观看| 亚洲激情一二三区| 三级av在线播放| 亚洲xxxx在线| 亚洲综合99| 永久看片925tv| 亚洲视频axxx| 婷婷视频一区二区三区| 可以免费在线看黄的网站| 国产精品久久夜| 日韩精品一二| 粉嫩精品一区二区三区在线观看 | 天天操天天操天天| 成人在线一区二区| 久久一日本道色综合久久|