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

HashMap 熟悉吧?好的,那就來(lái)聊聊 Redis 字典吧!

存儲(chǔ) 存儲(chǔ)軟件 Redis
事情是這樣的,前面面試問(wèn)了幾個(gè) Java 的相關(guān)問(wèn)題,我朋友回答還不錯(cuò),接下來(lái)面試官就問(wèn)了一句:看來(lái) Java 基礎(chǔ)還不錯(cuò),Java HashMap 你熟悉吧?

[[340683]]

本文轉(zhuǎn)載自微信公眾號(hào)「Java極客技術(shù)」,作者鴨血粉絲 。轉(zhuǎn)載本文請(qǐng)聯(lián)系Java極客技術(shù)公眾號(hào)。

最近,阿粉的一個(gè)朋友出去面試,回來(lái)跟阿粉抱怨,面試官不按套路出牌,直接打亂了他的節(jié)奏。

事情是這樣的,前面面試問(wèn)了幾個(gè) Java 的相關(guān)問(wèn)題,我朋友回答還不錯(cuò),接下來(lái)面試官就問(wèn)了一句:看來(lái) Java 基礎(chǔ)還不錯(cuò),Java HashMap 你熟悉吧?

我朋友回答。工作經(jīng)常用,有看過(guò)源碼。

我朋友本來(lái)想著,你隨便來(lái)吧,這個(gè)問(wèn)題之前已經(jīng)準(zhǔn)備好了,隨便問(wèn)吧。

誰(shuí)知道,面試官下面一句:

「那好的,我們來(lái)聊聊 Redis 字典吧。」

直接將他整蒙逼。

 

阿粉的朋友由于沒(méi)怎么研究過(guò) Redis 字典,所以這題就直接回答不知道了。

「當(dāng)然,如果面試中真不知道,那就回答不了解,直接下一題,不要亂答。」

不過(guò)這一題,阿粉覺(jué)得還是很可惜,其實(shí) Redis 字典基本原理與 HashMap 差不多,那我們其實(shí)可以套用這其中的原理,不求回答滿分,但是怎么也可以得個(gè)及格分吧~

面試過(guò)程真要碰到這個(gè)問(wèn)題,我們可以從下面三個(gè)方面回答。

  • 數(shù)據(jù)結(jié)構(gòu)
  • 元素增加過(guò)程
  • 擴(kuò)容

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

說(shuō)起字典,也許大家比較陌生,但是我們都知道 Redis 本身提供 KV 查詢的方式,這個(gè) KV 就是其實(shí)通過(guò)底層就是通過(guò)字典保存。

另外,Redis 支持多種數(shù)據(jù)類型,其中一種類型為 Hash 鍵,也可以用來(lái)存儲(chǔ) KV 數(shù)據(jù)。

阿粉剛開(kāi)始了解的這個(gè)數(shù)據(jù)結(jié)構(gòu)的時(shí)候,本來(lái)以為這個(gè)就是使用字典實(shí)現(xiàn)。其實(shí)并不是這樣的,初始創(chuàng)建 Hash 鍵,默認(rèn)使用另外一種數(shù)據(jù)結(jié)構(gòu)-「ZIPLIST」(壓縮列表),以此節(jié)省內(nèi)存空間。

不過(guò)一旦以下任何條件被滿足,Hash 鍵的數(shù)據(jù)結(jié)構(gòu)將會(huì)變?yōu)樽值洌涌觳樵兯俣取?/p>

  • 哈希表中某個(gè)鍵或某個(gè)值的長(zhǎng)度大于 server.hash_max_ziplist_value (默認(rèn)值為 64 )。
  • 壓縮列表中的節(jié)點(diǎn)數(shù)量大于 server.hash_max_ziplist_entries (默認(rèn)值為 512 )。

Redis 字典新建時(shí)默認(rèn)將會(huì)創(chuàng)建一個(gè)哈希表數(shù)組,保存兩個(gè)哈希表。

其中 ht[0] 哈希表在第一次往字典中添加鍵值時(shí)分配內(nèi)存空間,而另一個(gè) ht[1] 將會(huì)在下文中擴(kuò)容/縮容才會(huì)進(jìn)行空間分配。

 

字典中哈希表其實(shí)就等同于Java HashMap,我們知道 Java 采用數(shù)組加鏈表/紅黑樹(shù)的實(shí)現(xiàn)方式,其實(shí)哈希表也是使用類似的數(shù)據(jù)結(jié)構(gòu)。

哈希表結(jié)構(gòu)如下所示:

 

其中 table 屬性是個(gè)數(shù)組, 其中數(shù)組元素保存一種 dictEntry 的結(jié)構(gòu),這個(gè)結(jié)構(gòu)完全類似與 HashMap 中的 Entry 類型,這個(gè)結(jié)構(gòu)存儲(chǔ)一個(gè) KV 鍵值對(duì)。

同時(shí),為了解決 hash 碰撞的問(wèn)題,dictEntry 存在一個(gè) next 指針,指向下一個(gè)dictEntry ,這樣就形成 dictEntry 的鏈表。

 

 

 

 

現(xiàn)在,我們回頭對(duì)比 Java 中 HashMap,可以發(fā)現(xiàn)兩者數(shù)據(jù)結(jié)構(gòu)基本一致。

只不過(guò) HashMap 為了解決鏈表過(guò)長(zhǎng)問(wèn)題導(dǎo)致查詢變慢,JDK1.8 時(shí)在鏈表元素過(guò)多時(shí)采用紅黑樹(shù)的數(shù)據(jù)結(jié)構(gòu)。

下面我們開(kāi)始添加新元素,了解這其中的原理。

元素增加過(guò)程

當(dāng)我們往一個(gè)新字典中添加元素,默認(rèn)將會(huì)為字典中 ht[0] 哈希表分配空間,默認(rèn)情況下哈希表 table 數(shù)組大小為 4(「DICT_HT_INITIAL_SIZE」)。

新添加元素的鍵值將會(huì)經(jīng)過(guò)哈希算法,確定哈希表數(shù)組的位置,然后添加到相應(yīng)的位置,如圖所示:

 

繼續(xù)增加元素,此時(shí)如果兩個(gè)不同鍵經(jīng)過(guò)哈希算法產(chǎn)生相同的哈希值,這樣就發(fā)生了哈希碰撞。

假設(shè)現(xiàn)在我們哈希表中擁有是三個(gè)元素,:

 

我們?cè)僭黾右粋€(gè)新元素,如果此時(shí)剛好在數(shù)組 3 號(hào)位置上發(fā)生碰撞,此時(shí) Redis 將會(huì)采用鏈表的方式解決哈希碰撞。

 

「注意,新元素將會(huì)放在鏈表頭結(jié)點(diǎn),這么做目的是因?yàn)樾略黾拥脑兀艽蟾怕噬蠒?huì)被再次訪問(wèn),放在頭結(jié)點(diǎn)增加訪問(wèn)速度。」

這里我們?cè)趯?duì)比一下元素添加過(guò)程,可以發(fā)現(xiàn) Redis 流程其實(shí)與 JDK 1.7 版本的 HashMap 類似。

當(dāng)我們?cè)卦黾釉絹?lái)越多時(shí),哈希碰撞情況將會(huì)越來(lái)越頻繁,這就會(huì)導(dǎo)致鏈表長(zhǎng)度過(guò)長(zhǎng),極端情況下 O(1) 查詢效率退化成 O(N) 的查詢效率。

為此,字典必須進(jìn)行擴(kuò)容,這樣就會(huì)使觸發(fā)字典 rehash 操作。

擴(kuò)容

當(dāng) Redis 進(jìn)行 Rehash 擴(kuò)容操作,首先將會(huì)為字典沒(méi)有用到 ht[1] 哈希表分配更大空間。

 

❝畫(huà)外音:ht[1] 哈希表大小為第一個(gè)大于等于 ht[0].used*2 的 2^2(2的n 次方冪)❞

然后再將 ht[0] 中所有鍵值對(duì)都遷移到 ht[1] 中。

簡(jiǎn)單起見(jiàn),忽略指向空節(jié)點(diǎn)

 

當(dāng)節(jié)點(diǎn)全部遷移完畢,將會(huì)釋放 ht[0]占用空間,并將 ht[1] 設(shè)置為 ht[0]。

 

擴(kuò)容 操作需要將 ht[0]所有鍵值對(duì)都 Rehash 到 ht[1] 中,如果鍵值過(guò)多,假設(shè)存在十億個(gè)鍵值對(duì),這樣一次性的遷移,勢(shì)必導(dǎo)致服務(wù)器會(huì)在一段時(shí)間內(nèi)停止服務(wù)。

另外如果每次 rehash 都會(huì)阻塞當(dāng)前操作,這樣對(duì)于客戶端處理非常不友好。

為了避免 rehash對(duì)服務(wù)器的影響,Redis 采用漸進(jìn)式的遷移方式,慢慢將數(shù)據(jù)遷移分散到多個(gè)操作步驟。

這個(gè)操作依賴字典中一個(gè)屬性 rehashidx,這是一個(gè)索引位置計(jì)數(shù)器,記錄下一個(gè)哈希表 table 數(shù)組上元素,默認(rèn)情況為值為 「-1」。

假設(shè)此時(shí)擴(kuò)容前字典如圖所示:

 

當(dāng)開(kāi)始 rehash 操作,rehashidx將會(huì)被設(shè)置為 「0」 。

這個(gè)期間每次收到增加,刪除,查找,更新命令,除了這些命令將會(huì)被執(zhí)行以外,還會(huì)順帶將ht[0]哈希表在 rehashidx 位置的元素 rehash 到 ht[1] 中。

假設(shè)此時(shí)收到一個(gè) 「K3」 鍵的查詢操作,Redis 首先執(zhí)行查詢操作,接著 Redis 將會(huì)為 ht[0]哈希表上table 數(shù)組第 rehashidx索引上所有節(jié)點(diǎn)都遷移到 ht[1]中。

 

當(dāng)操作完成之后,再將 rehashidx 屬性值加 1。

最后當(dāng)所有鍵值對(duì)都 rehash 到 ht[1]中時(shí),rehashidx將會(huì)被重新設(shè)置為 -1。

雖然漸進(jìn)式的 rehash 操作減少了工作量,但是卻帶來(lái)鍵值操作的復(fù)雜度。

這是因?yàn)樵跐u進(jìn)式 rehash 操作期間,Redis 無(wú)法明確知道鍵到底在 ht[0]中,還是在 ht[1] 中,所以這個(gè)時(shí)候 Redis 不得不查找兩個(gè)哈希表。

以查找為例,Redis 首先查詢 ht[0] ,如果沒(méi)找到將會(huì)繼續(xù)查找 ht[1],除了查詢以外,更新,刪除也會(huì)執(zhí)行如上的操作。

添加操作其實(shí)就沒(méi)這么麻煩,因?yàn)閔t[0]不會(huì)在使用,那就統(tǒng)一都添加到 ht[1] 中就好了。

最后我們?cè)賹?duì)比一下 Java HashMap 擴(kuò)容操作,它是一個(gè)一次性操作,每次擴(kuò)容需要將所有鍵值對(duì)都遷移到新的數(shù)組中,所以如果數(shù)據(jù)量很大,消耗時(shí)間就會(huì)久。

總結(jié)

Redis 字典使用哈希表作為底層實(shí)現(xiàn),每個(gè)字典包含兩個(gè)哈希表,一個(gè)平時(shí)使用,一個(gè)僅在 rehash 操作中使用。

哈希表總的來(lái)說(shuō),跟 Java HashMap 真的很類似,底層實(shí)現(xiàn)也是一個(gè)數(shù)組加鏈表數(shù)據(jù)結(jié)構(gòu)。

最后,當(dāng)對(duì)哈希表進(jìn)行擴(kuò)容操作時(shí)間,將會(huì)采用漸進(jìn)性 rehash 操作,慢慢將所有鍵值對(duì)遷移到新哈希表中。

其實(shí)了解 Redis 字典的其中的原理,再去比較 Java HashMap ,其實(shí)可以發(fā)現(xiàn)這兩者有如此多的相似點(diǎn)。

所以學(xué)習(xí)這類知識(shí)時(shí),不要僅僅去背,我們要了解其底層原理,知其然知其所以然。

 

幫助資料https://redisbook.readthedocs.io/en/latest/internal-datastruct/dict.html

 

責(zé)任編輯:武曉燕 來(lái)源: Java極客技術(shù)
相關(guān)推薦

2022-05-17 20:37:41

MyPick泛型對(duì)象類型

2025-01-10 08:41:54

2021-01-31 16:01:43

對(duì)象引用原始值

2020-02-18 15:15:05

Handler消息隊(duì)列執(zhí)行任務(wù)

2022-12-11 23:43:06

2016-10-26 22:32:34

曙光

2023-07-13 08:19:30

HaspMapRedis元素

2024-12-19 13:27:22

2015-11-27 10:02:05

WindowsLinuxLabxNow

2021-01-12 08:21:46

Jvm類加載機(jī)制運(yùn)行區(qū)數(shù)據(jù)

2013-04-19 10:23:25

編程

2025-05-22 08:15:00

2025-03-20 09:54:47

2012-11-19 10:09:25

2024-01-15 06:42:00

高并發(fā)熱點(diǎn)賬戶數(shù)據(jù)庫(kù)

2014-08-04 10:48:35

職場(chǎng)IT職場(chǎng)

2018-02-07 10:24:01

Nginx服務(wù)器架構(gòu)

2021-09-07 11:20:02

binlogMySQL數(shù)據(jù)庫(kù)

2021-08-04 08:31:10

MySQL數(shù)據(jù)庫(kù)日志

2012-05-18 13:28:04

HTC
點(diǎn)贊
收藏

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

亚洲国产女人aaa毛片在线| 亚洲女人****多毛耸耸8| 91地址最新发布| 中文字幕在线播放一区| 免费电影日韩网站| 亚洲欧洲韩国日本视频| 国产精品乱码一区二区三区| 五月婷婷开心网| 欧美gay男男猛男无套| 日韩精品在线一区| 亚洲中文字幕久久精品无码喷水| 色视频在线免费观看| 高清不卡在线观看| 国产精品久久久久久久7电影| 成人免费视频网站入口::| 欧美电影在线观看免费| 欧美日韩免费高清一区色橹橹| 欧美一级中文字幕| 国产中文字幕在线看| 国内成人精品2018免费看| 91超碰中文字幕久久精品| 欧美视频一区二区在线| 婷婷激情久久| 欧美va亚洲va在线观看蝴蝶网| 牛夜精品久久久久久久| 91白丝在线| 亚洲激情在线激情| 亚洲午夜精品久久| 日韩大胆人体| 成人av在线网| 69堂成人精品视频免费| 国语对白做受69按摩| 一本久久综合| 欧美黄色片视频| 我要看黄色一级片| 日韩在线不卡| 国产一区二区三区18| 国产不卡一二三| 国产精品一区二区美女视频免费看| 色婷婷国产精品综合在线观看| 无码专区aaaaaa免费视频| 99热国产在线| 亚洲欧美日韩久久| 在线免费观看成人网| 国产在线视频网站| 久久久久88色偷偷免费| 久久久久久亚洲精品不卡4k岛国| 国产a级免费视频| 国产乱淫av一区二区三区 | 欧美日韩精品免费看| 你懂的网站在线| 成人永久aaa| 超碰97国产在线| 精品人妻无码一区二区色欲产成人| 麻豆成人免费电影| 成人久久久久久久| 国产免费不卡视频| 韩国欧美国产1区| 91免费人成网站在线观看18| 国产精品无码久久久久成人app| 麻豆国产欧美一区二区三区| 国产精品三级美女白浆呻吟| 正在播放木下凛凛xv99| 老鸭窝一区二区久久精品| 国产精品自产拍在线观| 97在线播放免费观看| 激情成人午夜视频| 97久久人人超碰caoprom欧美| 性欧美8khd高清极品| 国产成人精品www牛牛影视| 成人免费在线看片| 污污视频在线免费看| 2021中文字幕一区亚洲| 色狠狠久久av五月综合| 日本中文字幕伦在线观看| 自拍偷拍亚洲激情| 欧美又粗又长又爽做受| 日本三级一区| 欧美日韩视频一区二区| 久久无码人妻一区二区三区| 久久久久观看| 在线观看日韩www视频免费| 免费中文字幕日韩| 亚洲毛片在线| 国产精品久久久精品| 国产精品视频第一页| 成人综合在线观看| 日本成人三级| 黄色一级片在线观看| 亚洲午夜久久久久久久久电影院 | 四虎影院中文字幕| 亚洲无线一线二线三线区别av| 55夜色66夜色国产精品视频| 亚洲天堂aaa| 99在线精品观看| 亚洲最新免费视频| 日本不卡免费高清视频在线| 欧美高清精品3d| 久久国产精品无码一级毛片| 第一sis亚洲原创| 97热精品视频官网| 亚洲一级特黄毛片| 91丨九色丨蝌蚪富婆spa| 手机在线视频你懂的| 在线视频cao| 日韩免费高清av| 国产激情av在线| 18成人免费观看视频| 国产免费观看久久黄| 熟妇人妻av无码一区二区三区| 中文字幕一区二区日韩精品绯色| www黄色日本| 日韩在线视频一区二区三区| 一区二区三区视频在线| 日本熟妇成熟毛茸茸| 精品写真视频在线观看| 欧美日韩综合网| av伦理在线| 日韩一区二区精品在线观看| 中文字幕在线观看免费高清| 国产一区二区你懂的| 成人免费观看a| 国产精品天堂| 欧美日韩国产一区二区三区| 久草福利在线观看| 日韩欧美精品| 国产精品狼人色视频一区| 手机在线观看免费av| 亚洲一区中文在线| 国产欧美日韩另类视频免费观看 | 欧美69精品久久久久久不卡 | 国产黄色激情视频| 欧美激情福利| 国产亚洲欧洲高清| 国语对白永久免费| 成人高清视频在线| 无码日本精品xxxxxxxxx| 日韩深夜福利网站| 一夜七次郎国产精品亚洲| 日韩欧美不卡视频| 成人手机在线视频| 国产成人永久免费视频| 日韩中文字幕在线一区| 久久伊人91精品综合网站| 中文字幕一区二区人妻痴汉电车 | 老熟妇高潮一区二区三区| 毛片av一区二区| 夜夜爽99久久国产综合精品女不卡| 偷拍中文亚洲欧美动漫| 亚洲欧洲在线免费| 亚洲大片免费观看| 国产丝袜欧美中文另类| 国产视频在线视频| 国内亚洲精品| 国产日产亚洲精品| 男人影院在线观看| 欧美一区二区三区公司| 91视频免费在线看| 福利91精品一区二区三区| 中国丰满熟妇xxxx性| 黑人久久a级毛片免费观看| 韩国19禁主播vip福利视频| 三级网站在线看| 日韩欧美精品中文字幕| 欧美自拍偷拍网| 国产美女娇喘av呻吟久久| 无颜之月在线看| 精品日产乱码久久久久久仙踪林| 欧美一二三视频| 成黄免费在线| 日韩一区二区电影| 天天操天天操天天操天天| 国产欧美一区二区三区网站 | 99国产精品久久| 欧美成人黑人猛交| 天天操夜夜操国产精品| 国产a一区二区| www.成人影院| 精品国产一区二区三区久久久| 精品久久久久久亚洲综合网站 | 无码久久精品国产亚洲av影片| 国产精品女主播在线观看| 一级黄色免费毛片| 亚洲欧美日韩国产| 特级毛片在线免费观看| 久久悠悠精品综合网| 国产精品美女久久| 欧美黑人xx片| 国产一区二区黄| 亚洲欧美黄色片| 欧美在线你懂的| 久久精品国产亚洲AV无码男同| 国产日韩在线不卡| 亚洲成人激情小说| 日日摸夜夜添夜夜添国产精品 | 久热国产精品视频一区二区三区| 一区在线影院| 久久久久久久av| 91xxx在线观看| 亚洲韩国欧洲国产日产av| 中文字幕+乱码+中文字幕明步| 亚洲国产日韩综合久久精品| 国产精品情侣呻吟对白视频| 成人在线视频一区| 91看片在线免费观看| 亚洲经典在线| 欧美精品久久96人妻无码| 久草精品在线| 国产日韩欧美综合精品| 999久久久国产999久久久| 欧美资源在线观看| 黑人极品ⅴideos精品欧美棵| 中日韩美女免费视频网址在线观看| 丰满大乳国产精品| 69堂成人精品免费视频| 手机av免费观看| 婷婷久久综合九色国产成人 | 福利在线视频导航| 日韩精品在线播放| 日本高清视频免费观看| 日韩一级片在线观看| 中文字幕乱码在线观看| 福利视频导航一区| 久青草免费视频| 亚洲欧美激情小说另类| 人与嘼交av免费| 久久影院视频免费| 日本免费福利视频| 成人国产精品免费观看视频| ass极品水嫩小美女ass| 国产一区二区免费看| 五月激情五月婷婷| 蜜臀av在线播放一区二区三区| 苍井空浴缸大战猛男120分钟| 中文一区二区| 香港三级韩国三级日本三级| 亚洲精品1区| 成人中文字幕在线播放| 在线日本高清免费不卡| 波多野结衣av一区二区全免费观看 | 美女视频免费一区| 国产免费视频传媒| 日韩精品欧美成人高清一区二区| 日韩精品一区二区三区久久| 一区二区精品| 亚洲欧洲日产国码无码久久99| 欧美色综合网| 日韩视频免费播放| 日韩午夜av| 日韩av资源在线| 视频一区欧美日韩| 牛夜精品久久久久久久| 极品少妇一区二区三区精品视频| 亚洲精品国产一区二区三区| 国产精品一区二区在线观看网站| 亚洲在线观看网站| 国产福利一区在线| 99re这里只有| 国产日韩欧美精品一区| 免费看的黄色录像| 亚洲激情网站免费观看| 国产在线视频99| 欧美午夜宅男影院在线观看| 波多野结衣高清在线| 欧美日韩一区二区在线视频| 91久久国语露脸精品国产高跟| 91精品国产综合久久香蕉的特点| 国产黄a三级三级看三级| 日韩女优电影在线观看| 天天干在线观看| 国产一区二区三区四区福利| av大大超碰在线| 欧洲亚洲在线视频| 日本黄色成人| 国产精品区免费视频| 亚洲v天堂v手机在线| 亚洲一区在线免费| 一区在线视频| 天天干在线影院| 国产福利一区在线观看| 在线免费观看日韩av| 国产精品国产三级国产aⅴ原创 | 成人福利在线观看视频| 久久久久久久久久久亚洲| 91精品产国品一二三产区| 国产三级精品网站| 美国成人xxx| 一本一生久久a久久精品综合蜜| 国内精品福利| 欧美性猛交xxx乱久交| 国产乱码精品一品二品| 91成年人网站| 亚洲激情网站免费观看| 啪啪小视频网站| 精品免费国产二区三区| 亚洲1卡2卡3卡4卡乱码精品| 久久人人爽人人| 欧美另类激情| 久久久久国产精品视频| 亚洲精品网址| 狠狠操精品视频| 波多野结衣亚洲一区| 看黄色录像一级片| 欧美性猛交xxxx黑人猛交| 国产精品视频a| 亚洲最新视频在线| 国产不卡人人| 亚洲japanese制服美女| 欧美综合在线视频观看| 色综合久久久久无码专区| 亚洲天天影视| 午夜精品在线视频一区| 一区二区国产欧美| 亚洲全黄一级网站| 欧美另类tv| 亚洲a在线观看| 国产大片一区| 日韩福利视频在线| 91亚洲国产成人精品一区二三| 亚洲国产精品免费在线观看| 欧美日韩在线播放三区四区| 免费国产在线观看| 性色av一区二区三区| 日韩成人久久| 最新视频 - x88av| 另类综合日韩欧美亚洲| 午夜理伦三级做爰电影| 亚洲成人在线免费| 国产黄色美女视频| 亚洲人成自拍网站| 老牛影视精品| 动漫一区二区在线| 亚洲精品a级片| 日韩一区二区三区久久| 日本一区二区不卡视频| 黄色片视频免费| 亚洲精选一区二区| 性国裸体高清亚洲| 久久99导航| 噜噜噜久久亚洲精品国产品小说| 日本一卡二卡在线| 亚洲国产视频一区| 人妻中文字幕一区| 98视频在线噜噜噜国产| 狼人天天伊人久久| 91免费黄视频| 99精品视频一区二区三区| 久草视频在线观| 精品视频在线播放色网色视频| 欧美办公室脚交xxxx| 欧美动漫一区二区| 日韩中文字幕亚洲一区二区va在线| 色无极影院亚洲| 欧美视频一区二区三区在线观看| 91在线免费看| 成人动漫网站在线观看| 综合激情网站| 动漫美女无遮挡免费| 精品久久久视频| 欧美白人做受xxxx视频| 国产精品大片wwwwww| 久久免费av| 国产精品二区视频| 五月天激情小说综合| 欧洲天堂在线观看| 精东粉嫩av免费一区二区三区| 中文字幕日韩综合| 亚洲激情自拍偷拍| 四虎在线视频免费观看| 国产成人精品在线| 日韩在线理论| 亚洲天堂网站在线| 岛国av在线不卡| 又爽又大又黄a级毛片在线视频| 91理论片午午论夜理片久久| 黄色精品免费| 波多野在线播放| 欧美一区二区三区白人| heyzo一区| 日韩中文字幕一区二区| 国产精品中文欧美| www.日本精品| 最近2019中文字幕在线高清| 51精品国产| 国产精品人人妻人人爽人人牛| 日韩一区欧美小说| 日本精品久久久久| 国产精品日本精品| 亚洲图片在线| 欧美日韩生活片| 亚洲国产成人久久综合一区| 免费污视频在线一区| 日韩中文字幕亚洲精品欧美| 91老师片黄在线观看| 国产高潮流白浆喷水视频| 日本aⅴ大伊香蕉精品视频| 91精品亚洲| 精品人妻无码一区二区三区| 在线观看91精品国产麻豆| 国产高清中文字幕在线|