成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識(shí)庫 > 詳解Redis數(shù)據(jù)結(jié)構(gòu)之跳躍表

詳解Redis數(shù)據(jù)結(jié)構(gòu)之跳躍表

熱門標(biāo)簽:四川穩(wěn)定外呼系統(tǒng)軟件 南京手機(jī)外呼系統(tǒng)廠家 高碑店市地圖標(biāo)注app 臺(tái)灣電銷 廊坊外呼系統(tǒng)在哪買 地圖標(biāo)注工廠入駐 400電話辦理的口碑 一個(gè)地圖標(biāo)注多少錢 b2b外呼系統(tǒng)

1、簡(jiǎn)介

我們先不談Redis,來看一下跳表。

1.1、業(yè)務(wù)場(chǎng)景

場(chǎng)景來自小灰的算法之旅,我們需要做一個(gè)拍賣行系統(tǒng),用來查閱和出售游戲中的道具,類似于魔獸世界中的拍賣行那樣,還有以下需求:

拍賣行拍賣的商品需要支持四種排序方式,分別是:按價(jià)格、按等級(jí)、按剩余時(shí)間、按出售者ID排序,排序查詢要盡可能地快。還要支持輸入道具名稱的精確查詢和不輸入名稱的全量查詢。

這樣的業(yè)務(wù)場(chǎng)景所需要的數(shù)據(jù)結(jié)構(gòu)該如何設(shè)計(jì)呢?拍賣行商品列表是線性的,最容易表達(dá)線性結(jié)構(gòu)的是數(shù)組和鏈表。假如用有序數(shù)組,雖然查找的時(shí)候可以使用二分法(時(shí)間復(fù)雜度O(logN)),但是插入的時(shí)間復(fù)雜度是O(N),總體時(shí)間復(fù)雜度是O(N);而如果要使用有序鏈表,雖然插入的時(shí)間復(fù)雜度是O(1),但是查找的時(shí)間復(fù)雜度是O(N),總體還是O(N)。

那有沒有一種數(shù)據(jù)結(jié)構(gòu),查找時(shí),有二分法的效率,插入時(shí)有鏈表的簡(jiǎn)單呢?有的,就是 跳表。

1.2、skiplist

skiplist,即跳表,又稱跳躍表,也是一種數(shù)據(jù)結(jié)構(gòu),用于解決算法問題中的查找問題。

一般問題中的查找分為兩大類,一種是基于各種平衡術(shù),時(shí)間復(fù)雜度為O(logN),一種是基于哈希表,時(shí)間復(fù)雜度O(1)。但是skiplist比較特殊,沒有在這里面

2、跳表

2.1、跳表簡(jiǎn)介

跳表也是鏈表的一種,是在鏈表的基礎(chǔ)上發(fā)展出來的,我們都知道,鏈表的插入和刪除只需要改動(dòng)指針就行了,時(shí)間復(fù)雜度是O(1),但是插入和刪除必然伴隨著查找,而查找需要從頭/尾遍歷,時(shí)間復(fù)雜度為O(N),如下圖所示是一個(gè)有序鏈表(最左側(cè)的灰色表示一個(gè)空的頭節(jié)點(diǎn))(圖片來自網(wǎng)絡(luò),以下同):

鏈表中,每個(gè)節(jié)點(diǎn)都指向下一個(gè)節(jié)點(diǎn),想要訪問下下個(gè)節(jié)點(diǎn),必然要經(jīng)過下個(gè)節(jié)點(diǎn),即無法跳過節(jié)點(diǎn)訪問,假設(shè),現(xiàn)在要查找22,我們要先后查找 3->7->11->19->22,需要五次查找。

但是如果我們能夠?qū)崿F(xiàn)跳過一些節(jié)點(diǎn)訪問,就可以提高查找效率了,所以對(duì)鏈表進(jìn)行一些修改,如下圖:

我們每個(gè)一個(gè)節(jié)點(diǎn),都會(huì)保存指向下下個(gè)節(jié)點(diǎn)的指針,這樣我們就能跳過某個(gè)節(jié)點(diǎn)進(jìn)行訪問,這樣,我們其實(shí)是構(gòu)造了兩個(gè)鏈表,新的鏈表之后原來鏈表的一半。

我們姑且稱原鏈表為第一層,新鏈表為第二層,第二層是在第一層的基礎(chǔ)上隔一個(gè)取一個(gè)。假設(shè),現(xiàn)在還是要查找22,我們先從第二層查找,從7開始,7小于22,再往后,19小于22,再往后,26大于22,所以從節(jié)點(diǎn)19轉(zhuǎn)到第一層,找到了22,先后查找 7->19->26->22,只需要四次查找。

以此類推,如果再提取一層鏈表,查找效率豈不是更高,如下圖:

現(xiàn)在,又多了第三層鏈表,第三層是在第二層的基礎(chǔ)上隔一個(gè)取一個(gè),假設(shè)現(xiàn)在還是要查找22,我們先從第三層開始查找,從19開始,19小于22,再往后,發(fā)現(xiàn)是空的,則轉(zhuǎn)到第二層,19后面的26大于22,轉(zhuǎn)到第一層,19后面的就是22,先后查找 19->26>22,只需要三次查找。

由上例可見,在查找時(shí),跳過多個(gè)節(jié)點(diǎn),可以大大提高查找效率,skiplist 就是基于此原理。

上面的例子中,每一層的節(jié)點(diǎn)個(gè)數(shù)都是下一層的一半,這種查找的過程有點(diǎn)類似二分法,查找的時(shí)間復(fù)雜度是O(logN),但是例子中的多層鏈表有一個(gè)致命的缺陷,就是一旦有節(jié)點(diǎn)插入或者刪除,就會(huì)破壞這種上下層鏈表節(jié)點(diǎn)個(gè)數(shù)是2:1的結(jié)構(gòu),如果想要繼續(xù)維持,則需要在插入或者刪除節(jié)點(diǎn)之后,對(duì)后面的所有節(jié)點(diǎn)進(jìn)行一次重新調(diào)整,這樣一來,插入/刪除的時(shí)間復(fù)雜度就變成了O(N)。

2.2、跳表層級(jí)之間的關(guān)系

如上所述,跳表為了解決插入和刪除節(jié)點(diǎn)時(shí)造成的后續(xù)節(jié)點(diǎn)重新調(diào)整的問題,引入了隨機(jī)層數(shù)的做法。相鄰層數(shù)之間的節(jié)點(diǎn)個(gè)數(shù)不再是嚴(yán)格的2:1的結(jié)構(gòu),而是為每個(gè)新插入的節(jié)點(diǎn)賦予一個(gè)隨機(jī)的層數(shù)。下圖展示了如何通過一步步的插入操作從而形成一個(gè)跳表:

每一個(gè)節(jié)點(diǎn)的層數(shù)都是隨機(jī)算法得出的,插入一個(gè)新的節(jié)點(diǎn)不會(huì)影響其他節(jié)點(diǎn)的層數(shù),因此,插入操作只需要修改插入節(jié)點(diǎn)前后的指針即可,避免了對(duì)后續(xù)節(jié)點(diǎn)的重新調(diào)整。這是跳表的一個(gè)很重要的特性,也是跳表性能明顯由于平衡樹的原因,因?yàn)槠胶鈽湓谑テ胶庵笠残枰M(jìn)行平衡調(diào)整。

上圖最后的跳表中,我們需要查找節(jié)點(diǎn)22,則遍歷到的節(jié)點(diǎn)依次是:7->37->19->22,可見,這種隨機(jī)層數(shù)的跳表的查找時(shí)可能沒有2:1結(jié)構(gòu)的效率,但是卻解決了插入/刪除節(jié)點(diǎn)的問題。

2.3、跳表的復(fù)雜度

跳表搜索的時(shí)間復(fù)雜度平均 O(logN),最壞O(N),空間復(fù)雜度O(2N),即O(N)

3、Redis中的跳表

在理解 Redis 的跳躍表之前,我們先回憶一下 Redis 的有序集合(sorted set)操作

  • 不重復(fù)但有序的字符串元素集合;
  • 每個(gè)元素均關(guān)聯(lián)一個(gè)double類型的score,Redis 根據(jù)score進(jìn)行從小到大排序;
  • score可以重復(fù),重復(fù)的按照插入順序進(jìn)行排序;

示例如下:

redis 127.0.0.1:6379> ZADD runoobkey 1 redis
(integer) 1
redis 127.0.0.1:6379> ZADD runoobkey 2 mongodb
(integer) 1
redis 127.0.0.1:6379> ZADD runoobkey 3 mysql
(integer) 1
redis 127.0.0.1:6379> ZADD runoobkey 3 mysql
(integer) 0
redis 127.0.0.1:6379> ZADD runoobkey 4 mysql
(integer) 0
redis 127.0.0.1:6379> ZRANGE runoobkey 0 10 WITHSCORES

"redis"
"1"
"mongodb"
"2"
"mysql"
"4"

這個(gè)是 Redis 中的有序列表的基本操作,我們答題可以看出,在有序列表中,有一個(gè)浮點(diǎn)數(shù)作為 score, 當(dāng)對(duì)應(yīng)一個(gè)值,可以根據(jù) score 精確查找和范圍查找,且效率很高

Redis 里面的這種操作的底層實(shí)現(xiàn)就是跳表。

上面理解了跳表,再去看 Redis 中的跳表就輕松多了,跳表的實(shí)現(xiàn)在 Redis 源碼目錄下 redis.h 文件中

3.1、zskiplistNode

zskiplistNode 表示跳表的一個(gè)節(jié)點(diǎn),聲明如下:

typedef struct zskiplistNode {
  robj *obj;
  double score;
  struct zskiplistNode *backward;
  struct zskiplistLevel {
    struct zskiplistNode *forward;
    unsigned int span;
  } level[];
} zskiplistNode;

robj 類型是 Redis 中用C語言實(shí)現(xiàn)一種集合數(shù)據(jù)結(jié)構(gòu),它可以表示 string、hash、list、set 和 zset 五種數(shù)據(jù)類型,這里不做詳細(xì)說明,在跳表節(jié)點(diǎn)中,這個(gè)類型的指針表示節(jié)點(diǎn)的成員對(duì)象

score 表示分值,用于排序和范圍查找

level 是一個(gè)柔性數(shù)組,它表示節(jié)點(diǎn)的層級(jí),每層都有一個(gè)前進(jìn)指針 forward,用于指向相同層級(jí)指向表尾方向的下一個(gè)節(jié)點(diǎn),而 span 則表示當(dāng)前節(jié)點(diǎn)在當(dāng)前層級(jí)中距離下一個(gè)節(jié)點(diǎn)的跨度,即兩個(gè)節(jié)點(diǎn)之間的距離。

初看上去,很容易以為跨度和遍歷節(jié)點(diǎn)有關(guān),實(shí)際并不是,遍歷操作只用前進(jìn)指針就夠了,跨度是用來計(jì)算排位(rank)的:在查找某個(gè)節(jié)點(diǎn)的過程中,沿途訪問過的所有層的跨度累計(jì)起來,就是目標(biāo)節(jié)點(diǎn)在跳表中的排位。

下圖中,查找成員o3,只經(jīng)歷了一層,排位為3

在 Redis 中,每個(gè)節(jié)點(diǎn)的層級(jí)都是根據(jù)冪次定律(power law,越大的樹出現(xiàn)的概率越?。╇S機(jī)生成的,它是1~32之間的一個(gè)數(shù),作為level數(shù)組的大小,即高度

下圖分別展示了三個(gè)高度為1、3、5層的節(jié)點(diǎn)

backward 是一個(gè)后退指針,每個(gè)節(jié)點(diǎn)都有一個(gè),指向當(dāng)前節(jié)點(diǎn)的表頭方向的下一個(gè)節(jié)點(diǎn),用于從表尾進(jìn)行遍歷

3.2、zskiplist

zskiplist 表示一個(gè)跳表,聲明如下:

typedef struct zskiplist {
  struct zskiplistNode *header, *tail;
  unsigned long length;
  int level;
} zskiplist;

header 和 tail 指針分別指向表頭和表尾節(jié)點(diǎn)

length 記錄了節(jié)點(diǎn)數(shù)量

level 記錄了所有節(jié)點(diǎn)中層級(jí)最高的節(jié)點(diǎn)的層級(jí),表頭節(jié)點(diǎn)的層高不計(jì)算在內(nèi)

下圖是一個(gè)跳表的示例,最左側(cè)是一個(gè) zskiplist 結(jié)構(gòu),其右側(cè)是四個(gè) zskiplistNode 節(jié)點(diǎn),從左向右分別有32層、4層、2層、5層。每個(gè)節(jié)點(diǎn)向右的指針即前進(jìn)指針 forward, BW 則表示后退指針 backward,每個(gè)節(jié)點(diǎn)依據(jù)節(jié)點(diǎn)的分值 score 進(jìn)行排列

到此這篇關(guān)于Redis數(shù)據(jù)結(jié)構(gòu)中的跳躍表的文章就介紹到這了,更多相關(guān)Redis數(shù)據(jù)結(jié)構(gòu)跳躍表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Redis底層數(shù)據(jù)結(jié)構(gòu)詳解
  • redis中的數(shù)據(jù)結(jié)構(gòu)和編碼詳解
  • redis內(nèi)部數(shù)據(jù)結(jié)構(gòu)之SDS簡(jiǎn)單動(dòng)態(tài)字符串詳解
  • redis數(shù)據(jù)結(jié)構(gòu)之intset的實(shí)例詳解
  • 詳解redis數(shù)據(jù)結(jié)構(gòu)之sds
  • 詳解redis數(shù)據(jù)結(jié)構(gòu)之壓縮列表
  • Redis中5種數(shù)據(jù)結(jié)構(gòu)的使用場(chǎng)景介紹
  • Redis底層數(shù)據(jù)結(jié)構(gòu)之dict、ziplist、quicklist詳解

標(biāo)簽:伊春 南寧 畢節(jié) 定州 甘南 河源 拉薩 泰州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《詳解Redis數(shù)據(jù)結(jié)構(gòu)之跳躍表》,本文關(guān)鍵詞  詳解,Redis,數(shù)據(jù)結(jié)構(gòu),之,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳解Redis數(shù)據(jù)結(jié)構(gòu)之跳躍表》相關(guān)的同類信息!
  • 本頁收集關(guān)于詳解Redis數(shù)據(jù)結(jié)構(gòu)之跳躍表的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    国产精品主播一区二区| 亚洲麻豆av| 免费一级特黄特色大片| 亚洲视频碰碰| av影片在线一区| 国产乱了高清露脸对白| 国产精品一区二区三区乱码| 欧美亚洲国产精品久久| 高清在线一区二区| 久久久精品国产一区二区| 亚洲区一区二区三| 今天免费高清在线观看国语| 国产精品亚洲综合久久| 国产伦精品一区二区三区妓女下载| 永久免费av片在线观看全网站| 欧美理论一区二区| 狠狠色一日本高清视频| 欧美三级网页| 亚洲女人初尝黑人巨大| 国产乱视频在线观看播放| 国产三级在线播放| 女同久久另类69精品国产| 日色在线视频| 91国内精品久久久| 色婷婷综合在线| 国产精品久久久久久久久妇女| 国产乱码精品一区二区三区不卡| 亚洲色图欧美日韩| 欧美日本在线视频| 欧美一级视频免费观看| 3d玉蒲团在线观看| 国内精品久久久久久久久| 一区二区三区国产| 97人人模人人爽人人少妇| 国产乡下妇女做爰视频| 国产免费一区二区三区在线能观看| 人妻无码中文久久久久专区| 天天爽夜夜爽一区二区三区| 中文字幕精品无码亚| 午夜日韩在线电影| 国产激情自拍视频| 成人三级高清视频在线看| 亚洲色图国产精品| 久久福利影院| 午夜免费欧美电影| 亚洲xxxxxx| 久久久免费高清电视剧观看| 久久久久久久久久一区二区| 久草在线视频网站| 欧美激情国产高清| 黄色aaa毛片| 黄瓜视频在线免费观看| 欧美理论片在线| 99精品视频免费版的特色功能| 中文字幕一区二区精品| 亚洲成人午夜在线| 国产精品亚洲综合色区韩国| 国产精品网红福利| 热99精品里视频精品| 欧美jizzhd精品欧美巨大免费| 久久久久久亚洲精品不卡4k岛国| 日韩欧美黄色动漫| 麻豆成全视频免费观看在线看| 粉嫩av在线播放| 538国产精品视频一区二区| 中文天堂av| 欧美极品aⅴ影院| 日本精品在线视频| 国产在线精品一区二区| 国产精品宾馆在线精品酒店| 成人精品一二区| 成人少妇影院yyyy| 精品久久影视| 天堂av中文在线观看| 91精品国产91久久综合桃花| 成人久久一区二区| 国自产拍偷拍福利精品免费一| 97电影在线观看| 激情 小说 亚洲 图片: 伦| 国产视频一区三区| 亚洲国产视频一区二区| 日本一区二区免费在线观看视频| 91精品国产高清一区二区三密臀| 亚洲欧美偷拍视频| 91久久国产综合久久91精品网站| 亚洲精品自拍区在线观看| 五月天婷婷激情网| 九九九九精品九九九九| 精品国产乱码久久久久夜深人妻| 国内精品在线观看视频| 日本欧美黄网站| 亚洲av无码国产精品麻豆天美| 国产精品乱码一区二区| 日日骚一区二区网站| 成人av电影在线网| 日韩av影视在线| 美国成人毛片| 手机看片一区二区| 日产欧产美韩系列久久99| 91久久大香伊蕉在人线| 亚洲欧美自拍视频| 日韩欧美有码在线| 欧美精品vⅰdeose4hd| 极品人妻videosss人妻| 久久久女人电视剧免费播放下载| 中文字幕国产精品一区二区| 亚洲一区二区三| 超碰人人爱人人| 97se亚洲国产综合自在线不卡| 亚洲一区二区影院| 少女频道在线观看高清| 成人在线黄色| 台湾佬成人中文网222vvv| 国产精品av在线| 天天操夜夜做| www在线免费观看视频| 要久久爱电视剧全集完整观看| 亚洲女性喷水在线观看一区| 亚洲精品一区av在线播放| 性欧美videos另类喷潮| 性一交一乱一色一免费无遮挡| 精品91久久久| 久久伊人亚洲| 国产精品无码一区二区三| 亚洲精品日日夜夜| 91亚洲自偷观看高清| 国产亚洲精品久久飘花| 亚洲r级在线观看| 韩国一区二区av| 成人啪啪免费看| 亚洲人成啪啪网站| 久久伦理中文字幕| 久久久另类综合| 亚洲精品免费观看| 欧美日韩在线一| 国产在线视频一区二区| 免费观看黄色一级视频| 中文字幕无码日韩专区免费| а√天堂8资源中文在线| 国产精品久久久久久久成人午夜| 午夜精品久久久久久久99热| 国产精品亚洲а∨天堂免在线| 国产欧美一区二| 欧美在线啊v一区| 激情成人中文字幕| 91精品啪在线观看麻豆免费| 欧美成人激情图片网| 一卡二卡三卡在线| 免费麻豆国产一区二区三区四区| 丁香综合av| 色多多视频在线播放| 日韩午夜在线观看| 九九热视频在线观看| 日韩欧美在线网址| 免费成人美女在线观看.| 秋霞久久久久久一区二区| 97超级碰碰碰| av片在线观看永久免费| 色吊一区二区三区| 99中文字幕一区| 不卡的国产精品| 成人欧美一区二区三区在线| 亚洲一区二区国产| 久久精品男人天堂av| 别急慢慢来1978如如2| 亚洲综合电影一区二区三区| 欧美一区免费视频| 国产精品久久久久久网站| 国产成人av电影在线| 草莓污污视频在线观看| 久久激情五月婷婷| 日本久久久久久久| 91在线观看污| 国产一二三四区| 日韩精品一区二区三区在线视频| 久久免费视频精品| 美女18一级毛片一品久道久久综合| 色涩视频在线观看| 无码免费一区二区三区免费播放| 麻豆精品在线看| 丰满女人性猛交| 日韩欧美一区二区三区久久婷婷| 久久人妻无码一区二区| 亚洲三级黄色在线观看| 国产精品视频一区在线观看| 9999国产精品| 116美女写真午夜一级久久| 99精品1区2区| 国产三级av在线播放| 97人妻精品视频一区| 欧美日韩在线不卡| 亚洲美女精品一区| 欧美贵妇videos办公室| 欧美精品在线免费播放| 97国产suv精品一区二区62| gogogo高清在线观看一区二区| 成人小视频在线观看免费| 欧美老头gaygay1069| 日韩理论在线| 国产盗摄视频在线观看| 国产精品伦一区二区三级视频| 成人免费看片视频在线观看| 日本欧美不卡| 无人在线观看的免费高清视频| 国产欧美日韩在线一区二区| 久热中文字幕在线精品免费| 精品久久久久久久久久久久久| 免费看的毛片| 三级黄视频在线观看| 国产成人艳妇aa视频在线| 亚洲青涩在线| 精品国产1区2区| 成人av资源网址| 91免费看蜜桃| 欧美做爰啪啪xxxⅹ性| 美女av免费在线观看| 国产精品网站免费| 日韩综合视频在线观看| 福利视频在线| av影院在线| 日韩激情在线观看| 免费黄网站在线播放| 欧洲成人免费aa| 国产免费网址| 国产毛片精品国产一区二区三区| 国产69精品久久久久999小说| 国产自产在线视频| 天天操天天干天天摸| 欧美日韩xx| 唐人社导航福利精品| www.亚洲一二| 初体验·韩国| 国产在线不卡一区二区三区| 日本大胆欧美人术艺术动态| 欧美在线亚洲综合一区| 免费欧美网站| 精品少妇一区二区三区| 91久久夜色精品国产按摩| 爽好久久久欧美精品| 日本黄色小视频在线观看| 91丨九色丨蝌蚪丨老版| 日本一区高清在线视频| 一级黄色录像在线观看| 黑人狂躁日本妞一区二区三区| 亚洲2020天天堂在线观看| 制服丝袜亚洲精品中文字幕| 波多野结衣办公室双飞| 亚洲美女免费视频| 97超碰成人| 欧美日韩一区二区高清| 日本视频在线免费观看| 成人性色av| 激情综合网最新| 99久re热视频精品98| 伊人免费在线观看高清版| 欧美日韩三级在线观看| 福利在线小视频| 天天综合天天综合色| 奇米一区二区三区| 亚洲日日夜夜| 日韩福利在线| 精品自拍视频| 亚洲午夜精品17c| 欧美 另类 交| 激情都市一区二区| 91电影在线观看| 久久国产视频网站| 91pron在线| 国产乱叫456在线| 久久久久久av无码免费网站下载| 欧美mv和日韩mv的网站| 亚洲综合伊人久久| 日韩国产精品亚洲а∨天堂免| 亚洲成人一二三| 日韩一区免费视频| 欧美在线|欧美| 国产日本在线观看| 麻豆国产欧美日韩综合精品二区| a视频v在线| 久久er99热精品一区二区三区| 欧美做爰性生交视频| 最近中文字幕在线mv视频在线| 国产精品一区二区三区久久| 欧美精品videos另类| 91精品人妻一区二区三区四区| 少妇伦子伦精品无吗| 日韩国产网站| 在线观看av片| 国产视频三区四区| 精品一区二区三区免费爱| 欧洲杯什么时候开赛| 日韩精品视频三区| 四虎免费播放| 已婚少妇美妙人妻系列| 你懂的av在线| 欧美va亚洲va在线观看蝴蝶网| 午夜视频你懂的| 天干夜夜爽爽日日日日| 欧美一级手机免费观看片| 91精产国品一二三产区别沈先生| 欧美精品一区二区三区久久久| 久久久久亚洲av无码专区体验| 久久综合九色欧美狠狠| 一区二区日韩精品| 好男人中文字幕官网| 亚洲国产精品一区二区久久hs| 精品91视频| 色婷婷亚洲婷婷| 欧美精品三区| 另类人妖一区二区av| 欧美黄网站色视频| 欧美中文字幕一二三四区| 国产精品亲子乱子伦xxxx裸| 日日天天狠狠| 亚洲人视频在线观看| 性感美女一区二区在线观看| 91社区在线观看播放| 综合图区欧美| 夜夜嗨av一区二区三区网页| 亚洲 欧美综合在线网络| 久久精品一区中文字幕| 久草中文在线视频| 少妇久久久久久久久久| 人人妻人人澡人人爽精品欧美一区| 国内精品小视频在线观看| 日韩电影不卡一区| 国产亚洲精品精华液| 亚洲日韩中文字幕|