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

Redis查漏補缺:Redis錯過的技術(shù)要點大掃盲

存儲 存儲軟件 Redis
考慮到絕大部分寫業(yè)務(wù)的程序員在實際開發(fā)中使用Redis時,只會Setvalue和Getvalue兩個操作,對Redis整體缺乏一個認知。

 考慮到絕大部分寫業(yè)務(wù)的程序員在實際開發(fā)中使用Redis時,只會Setvalue和Getvalue兩個操作,對Redis整體缺乏一個認知。又恰逢筆者有同事下周要去培訓(xùn)Redis,所以筆者斗膽以Redis為主題,對Redis常見問題做一個總結(jié),希望能夠掃除大家的知識盲點。

[[251562]]

本文圍繞以下幾點進行闡述:

  • 為什么使用Redis
  • 使用Redis有什么缺點
  • 單線程的Redis為什么這么快
  • Redis的數(shù)據(jù)類型,以及每種數(shù)據(jù)類型的使用場景
  • Redis的過期策略以及內(nèi)存淘汰機制
  • Redis和數(shù)據(jù)庫雙寫一致性問題
  • 如何應(yīng)對緩存穿透和緩存雪崩問題
  • 如何解決Redis的并發(fā)競爭問題

為什么使用Redis

筆者認為,在項目中使用Redis,主要是從兩個角度去考慮:性能和并發(fā)。當(dāng)然,Redis還具備可做分布式鎖等功能的其它功能,但如果只是為了分布式鎖這些其它功能,完全還有其它中間件(如Zookpeer等)可以代替,并不是非要使用Redis。

因此,這個問題主要從性能和并發(fā)兩個角度去答:

1性能

如下圖所示,我們在碰到需要執(zhí)行耗時特別久、且結(jié)果不頻繁變動的SQL時,就特別適合將運行結(jié)果放入緩存。這樣,后面的請求就去緩存中讀取,使得請求能夠迅速響應(yīng)。

 

題外話:忽然想聊一下這個迅速響應(yīng)的標準——其實根據(jù)交互效果的不同,這個響應(yīng)時間沒有固定標準。不過曾經(jīng)有人這么告訴我:“在理想狀態(tài)下,我們的頁面跳轉(zhuǎn)需要在瞬間解決,對于頁內(nèi)操作則需要在剎那間解決。另外,超過一彈指的耗時操作要有進度提示,并且可以隨時中止或取消,這樣才能給用戶***的體驗。”

那么瞬間、剎那、一彈指具體是多少時間呢?

根據(jù)《摩訶僧祗律》記載:一剎那者為一念,二十念為一瞬,二十瞬為一彈指,二十彈指為一羅預(yù),二十羅預(yù)為一須臾,一日一夜有三十須臾。

那么,經(jīng)過周密的計算,一瞬間為0.36秒,一剎那有0.018秒,一彈指長達7.2秒。

2并發(fā)

如下圖所示,在大并發(fā)的情況下,所有的請求直接訪問數(shù)據(jù)庫,數(shù)據(jù)庫會出現(xiàn)連接異常。這個時候,就需要使用Redis做一個緩沖操作,讓請求先訪問到Redis,而不是直接訪問數(shù)據(jù)庫。

 

使用Redis有什么缺點

大家用Redis這么久,這個問題是必須要了解的,基本上使用Redis都會碰到一些問題,常見的主要是四方面的問題:

  • 緩存和數(shù)據(jù)庫雙寫一致性問題
  • 緩存雪崩問題
  • 緩存擊穿問題
  • 緩存的并發(fā)競爭問題

這四個問題,筆者個人覺得在項目中比較常遇見,具體解決方案,后文會給出。

單線程的Redis為什么這么快

這個問題其實是對Redis內(nèi)部機制的一個考察。其實根據(jù)筆者的面試經(jīng)驗,很多人其實都不知道Redis是單線程工作模型。所以,這個問題還是應(yīng)該要復(fù)習(xí)一下的。主要是以下三點:

  • 純內(nèi)存操作
  • 單線程操作,避免了頻繁的上下文切換
  • 采用了非阻塞I/O多路復(fù)用機制

我們現(xiàn)在仔細地說一說I/O多路復(fù)用機制,因為這個說法實在是太通俗了,通俗到一般人都不懂是什么意思。打一個比方:小曲在S城開了一家快遞店,負責(zé)同城快送服務(wù)。小曲因為資金限制,雇傭了一批快遞員,然后小曲發(fā)現(xiàn)資金不夠了,只夠買一輛車送快遞。

經(jīng)營方式一:

客戶每送來一份快遞,小曲就讓一個快遞員盯著,然后快遞員開車去送快遞。慢慢的小曲就發(fā)現(xiàn)了這種經(jīng)營方式存在很多問題,幾十個快遞員基本上時間都花在了搶車上了,大部分快遞員都處在閑置狀態(tài),誰搶到了車,誰就能去送快遞。

隨著快遞的增多,快遞員也越來越多,小曲發(fā)現(xiàn)快遞店里越來越擠,沒辦法雇傭新的快遞員了,快遞員之間的協(xié)調(diào)很花時間,大部分時間花在搶車上。綜合上述缺點,小曲痛定思痛,提出了下面的經(jīng)營方式↓

經(jīng)營方式二:

小曲只雇傭一個快遞員,客戶送來的快遞,小曲按送達地點標注好,然后依次放在一個地方。***,那個快遞員依次去取快遞,一次拿一個,開著車去送快遞,送好了就回來拿下一個快遞。

上述兩種經(jīng)營方式對比,是不是明顯覺得第二種,效率更高、更好呢?在上述比喻中:

  • 每個快遞員→每個線程
  • 每個快遞→每個Socket(I/O流)
  • 快遞的送達地點→Socket的不同狀態(tài)
  • 客戶送快遞請求→來自客戶端的請求
  • 小曲的經(jīng)營方式→服務(wù)端運行的代碼
  • 一輛車→CPU的核數(shù)

于是我們有如下結(jié)論:

  • 經(jīng)營方式一就是傳統(tǒng)的并發(fā)模型,每個I/O流(快遞)都有一個新的線程(快遞員)管理。
  • 經(jīng)營方式二就是I/O多路復(fù)用。只有單個線程(一個快遞員),通過跟蹤每個I/O流的狀態(tài)(每個快遞的送達地點),來管理多個I/O流。

下面類比到真實的Redis線程模型,如圖所示:

 

參照上圖,簡單來說就是,我們的Redis-client在操作的時候,會產(chǎn)生具有不同事件類型的Socket。在服務(wù)端,有一段I/O多路復(fù)用程序,將其置入隊列之中。然后文件事件分派器依次去隊列中取,轉(zhuǎn)發(fā)到不同的事件處理器中。

需要說明的是,這個I/O多路復(fù)用機制,Redis還提供了Select、Epoll、Evport、Kqueue等多路復(fù)用函數(shù)庫,大家可以自行去了解。

Redis的數(shù)據(jù)類型及各自使用場景

看到這個問題,是不是覺得它很基礎(chǔ)?其實筆者也這么覺得。然而根據(jù)面試經(jīng)驗發(fā)現(xiàn),至少80%的人答不上這個問題。建議在項目中用到后,再類比記憶,體會更深,不要硬記。基本上,一個合格的程序員五種類型都會用到:

1String

這個其實沒什么好說的,最常規(guī)的Set/Get操作,Value可以是String也可以是數(shù)字,一般做一些復(fù)雜的計數(shù)功能的緩存。

2Hash

這里Value存放的是結(jié)構(gòu)化的對象,比較方便的就是操作其中的某個字段。筆者在做單點登錄的時候,就是用這種數(shù)據(jù)結(jié)構(gòu)存儲用戶信息,以CookieId作為Key,設(shè)置30分鐘為緩存過期時間,能很好地模擬出類似Session的效果。

3List

使用List的數(shù)據(jù)結(jié)構(gòu),可以做簡單的消息隊列的功能。另外還有一個就是,可以利用Lrange命令,做基于Redis的分頁功能,性能***,用戶體驗好。

4Set

因為Set堆放的是一堆不重復(fù)值的集合,所以可以做全局去重的功能。

為什么不用JVM自帶的Set進行去重?因為我們的系統(tǒng)一般都是集群部署,使用JVM自帶的Set比較麻煩,難道為了做一個全局去重,再起一個公共服務(wù)?太麻煩了。

另外,就是利用交集、并集、差集等操作,可以計算共同喜好、全部的喜好、自己獨有的喜好等功能。

5SortedSet

Sorted Set多了一個權(quán)重參數(shù)Score,集合中的元素能夠按Score進行排列。可以做排行榜應(yīng)用,取TOP N操作。另外,Sorted Set還可以用來做延時任務(wù)。***一個應(yīng)用就是可以做范圍查找。

Redis的過期策略及內(nèi)存淘汰機制

這個問題其實相當(dāng)重要,從這個問題就可以看出來到底Redis有沒有用到位。比如,你Redis只能存5G數(shù)據(jù),可是你寫了10G,那會刪5G的數(shù)據(jù)。怎么刪的?這個問題思考過么?還有,你的數(shù)據(jù)已經(jīng)設(shè)置了過期時間,但是時間到了,內(nèi)存占用率還是比較高,有思考過原因么?

Redis采用的是定期刪除+惰性刪除策略。

為什么不用定時刪除策略?

定時刪除,用一個定時器來負責(zé)監(jiān)視Key,過期則自動刪除。雖然內(nèi)存及時釋放,但是十分消耗CPU資源。在大并發(fā)請求下,CPU要將時間應(yīng)用在處理請求,而不是刪除Key,因此沒有采用這一策略。

定期刪除+惰性刪除是如何工作的呢?

定期刪除,Redis默認每個100ms檢查是否有過期的Key,有過期Key則刪除。需要說明的是,Redis不是每個100ms將所有的Key檢查一次,而是隨機抽取進行檢查(如果每隔100ms,全部Key進行檢查,Redis豈不是卡死)。因此,如果只采用定期刪除策略,會導(dǎo)致很多Key到時間沒有刪除。

于是,惰性刪除派上用場。也就是說在你獲取某個Key的時候,Redis會檢查一下,這個Key如果設(shè)置了過期時間,那么是否過期了?如果過期了此時就會刪除。

采用定期刪除+惰性刪除就沒其他問題了么?

不是的,如果定期刪除沒刪除Key。然后你也沒及時去請求Key,也就是說惰性刪除也沒生效。這樣,Redis的內(nèi)存會越來越高,那么就應(yīng)該采用內(nèi)存淘汰機制。

在Redis.conf中有一行配置:

  1. # maxmemory-policy volatile-lru 

該配置就是配內(nèi)存淘汰策略的:

  • Noeviction:當(dāng)內(nèi)存不足以容納新寫入數(shù)據(jù)時,新寫入操作會報錯。應(yīng)該沒人使用吧;
  • Allkeys-lru:當(dāng)內(nèi)存不足以容納新寫入數(shù)據(jù)時,在鍵空間中,移除最近最少使用的Key。推薦使用,目前項目在用這種;
  • Allkeys-random:當(dāng)內(nèi)存不足以容納新寫入數(shù)據(jù)時,在鍵空間中,隨機移除某個key,應(yīng)該也沒人使用吧;
  • Volatile-lru:當(dāng)內(nèi)存不足以容納新寫入數(shù)據(jù)時,在設(shè)置了過期時間的鍵空間中,移除最近最少使用的Key。這種情況一般是把Redis既當(dāng)緩存又做持久化存儲的時候才用。不推薦;
  • Volatile-random:當(dāng)內(nèi)存不足以容納新寫入數(shù)據(jù)時,在設(shè)置了過期時間的鍵空間中,隨機移除某個Key。依然不推薦;
  • Volatile-ttl:當(dāng)內(nèi)存不足以容納新寫入數(shù)據(jù)時,在設(shè)置了過期時間的鍵空間中,有更早過期時間的Key優(yōu)先移除。不推薦。

PS:如果沒有設(shè)置Expire的Key,不滿足先決條件(Prerequisites);那么Volatile-lru、Volatile-random和Volatile-ttl策略的行為,和Noeviction(不刪除)基本上一致。

Redis和數(shù)據(jù)庫雙寫一致性問題

一致性問題是分布式常見問題,還可以再分為最終一致性和強一致性。數(shù)據(jù)庫和緩存雙寫,就必然會存在不一致的問題,想要回答這個問題,就要先明白一個前提:如果對數(shù)據(jù)有強一致性要求,就不能放緩存。我們所做的一切,只能保證最終一致性。

另外,我們所做的方案其實從根本上來說,只能說降低不一致發(fā)生的概率,無法完全避免。因此,有強一致性要求的數(shù)據(jù)不能放緩存。

在這里簡單地說一說:首先,采取正確更新策略,先更新數(shù)據(jù)庫,再刪緩存;其次,因為可能存在刪除緩存失敗的問題,提供一個補償措施即可,例如利用消息隊列。

應(yīng)對緩存穿透和緩存雪崩問題

關(guān)于“如何應(yīng)對緩存穿透和緩存雪崩”這兩個問題,說句實在話,一般中小型傳統(tǒng)軟件企業(yè)很難碰到。如果有大并發(fā)的項目,流量有幾百萬左右,這兩個問題一定要深刻考慮:

1應(yīng)對緩存穿透

緩存穿透,即黑客故意去請求緩存中不存在的數(shù)據(jù),導(dǎo)致所有的請求都懟到數(shù)據(jù)庫上,從而數(shù)據(jù)庫連接異常。

解決方案:

  • 利用互斥鎖,緩存失效的時候,先去獲得鎖,得到鎖了,再去請求數(shù)據(jù)庫,沒得到鎖,則休眠一段時間重試;
  • 采用異步更新策略,無論Key是否取到值,都直接返回。Value值中維護一個緩存失效時間,緩存如果過期,異步起一個線程去讀數(shù)據(jù)庫,更新緩存,需要做緩存預(yù)熱(項目啟動前,先加載緩存)操作;
  • 提供一個能迅速判斷請求是否有效的攔截機制,比如利用布隆過濾器,內(nèi)部維護一系列合法有效的Key,迅速判斷出,請求所攜帶的Key是否合法有效,如果不合法,則直接返回。

2應(yīng)對緩存雪崩

緩存雪崩,即緩存同一時間大面積的失效,這個時候又來了一波請求,結(jié)果請求都懟到數(shù)據(jù)庫上,從而導(dǎo)致數(shù)據(jù)庫連接異常。

解決方案:

  • 給緩存的失效時間加上一個隨機值,避免集體失效;
  • 使用互斥鎖,但是該方案吞吐量明顯下降了;
  • 雙緩存。我們有兩個緩存,緩存A和緩存B。緩存A的失效時間為20分鐘,緩存B不設(shè)失效時間,自己做緩存預(yù)熱操作。然后細分以下幾個小點:

a. 從緩存A讀數(shù)據(jù)庫,有則直接返回;

b. A 沒有數(shù)據(jù),直接從B讀數(shù)據(jù),直接返回,并且異步啟動一個更新線程;

c. 更新線程同時更新緩存A和緩存B。

如何解決Redis并發(fā)競爭Key問題

這個問題大致就是同時有多個子系統(tǒng)去Set一個Key。這個時候要注意什么呢?本人提前百度了一下,發(fā)現(xiàn)大家思考的答案基本都是推薦用Redis事務(wù)機制。但本人不推薦使用Redis的事務(wù)機制。因為我們的生產(chǎn)環(huán)境,基本都是Redis集群環(huán)境,做了數(shù)據(jù)分片操作。你一個事務(wù)中有涉及到多個Key操作的時候,這多個Key不一定都存儲在同一個Redis-Server上。因此,Redis的事務(wù)機制,十分雞肋。

解決方法如下:

如果對這個Key操作不要求順序

這種情況下,準備一個分布式鎖,大家去搶鎖,搶到鎖就做Set操作即可,比較簡單。

如果對這個Key操作要求順序

假設(shè)有一個Key1,系統(tǒng)A需要將Key1設(shè)置為ValueA,系統(tǒng)B需要將Key1設(shè)置為ValueB,系統(tǒng)C需要將Key1設(shè)置為ValueC。期望按照Key1的Value值按照 ValueA→ValueB→ValueC的順序變化。這種時候我們在數(shù)據(jù)寫入數(shù)據(jù)庫的時候,需要保存一個時間戳。假設(shè)時間戳如下:

系統(tǒng)A Key 1 {ValueA 3:00}

系統(tǒng)B Key 1 {ValueB 3:05}

系統(tǒng)C Key 1 {ValueC 3:10}

那么,假設(shè)這會系統(tǒng)B先搶到鎖,將Key1設(shè)置為{ValueB 3:05}。接下來系統(tǒng)A搶到鎖,發(fā)現(xiàn)自己的ValueA的時間戳早于緩存中的時間戳,那就不做Set操作了。以此類推。

其他方法,比如利用隊列,將Set方法變成串行訪問也可以。總之,靈活變通。

總結(jié)

本文對Redis的常見問題做了一個總結(jié)。大部分是筆者自己在工作中遇到,以及以前面試別人的時候常問的一些問題,希望大家能夠有所收獲。

作者介紹

 

孤獨煙,中國平安研發(fā)工程師,目前負責(zé)規(guī)則云平臺架構(gòu)設(shè)計以及需求研發(fā)工作。畢業(yè)后一直從事Java開發(fā)工作,在Web開發(fā)、架構(gòu)設(shè)計上有多年的實戰(zhàn)經(jīng)驗。在MySQL性能優(yōu)化、JVM調(diào)優(yōu)、分布式領(lǐng)域有著豐富的經(jīng)驗。

責(zé)任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2020-06-02 16:30:20

Redis數(shù)據(jù)庫字符串

2022-02-17 10:56:33

Redis數(shù)據(jù)系統(tǒng)

2022-09-21 16:25:17

Redis性能

2021-03-08 08:03:44

注解Spring配置

2024-02-26 09:36:10

toggleAPIweb

2021-03-04 08:26:17

synchronizeReentrantLojava

2021-03-17 13:44:14

隱私信息安全手機

2019-09-24 09:46:35

Tomcat連接器Lifecycle

2023-10-09 08:31:19

2018-04-04 09:00:00

區(qū)塊鏈X即服務(wù)微軟

2021-03-17 10:20:14

網(wǎng)絡(luò)安全網(wǎng)絡(luò)安全技術(shù)周刊

2009-05-31 11:15:39

布線光纖

2009-09-15 09:36:35

linuxTar命令常用參數(shù)

2025-03-14 08:00:00

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

2010-09-02 13:25:41

Linux命令行

2019-02-18 11:16:12

Redis分布式緩存

2022-01-13 09:23:48

Redis架構(gòu)優(yōu)化

2016-11-30 13:35:21

掃碼信息安全

2015-12-11 09:43:53

網(wǎng)絡(luò)設(shè)備路由器

2020-07-09 07:37:06

數(shù)據(jù)庫Redis工具
點贊
收藏

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

久久久久久久国产精品| 欧美在线你懂得| 国语精品免费视频| 亚洲天堂男人av| 视频在线不卡免费观看| 日韩一区二区三区电影在线观看 | 91在线观看免费观看| 精品无码久久久久久久久| 亚洲欧美校园春色| 欧美一区二区视频观看视频| 欧美色图另类小说| 日本激情在线观看| 不卡一区二区三区四区| 国产精品久久久久久久久久小说 | 在线免费av电影| 不卡免费追剧大全电视剧网站| 国产成人精品999| 欧美成人777| 国产精品嫩草影院在线看| 日韩精品在线网站| 手机在线看福利| 伊人影院蕉久影院在线播放| 久久久噜噜噜久久中文字幕色伊伊| 成人免费网站在线| 在线观看污污网站| 在线精品亚洲| 不卡av在线网站| 永久免费毛片在线观看| 欧美日韩另类图片| 日韩午夜三级在线| 日本国产一级片| 激情开心成人网| 精品国产乱码久久久久久婷婷| 偷拍盗摄高潮叫床对白清晰| 黄视频在线播放| av电影天堂一区二区在线观看| 亚洲va欧美va在线观看| 日本妇乱大交xxxxx| 亚洲日产国产精品| 欧美精品国产精品日韩精品| 五月天激情丁香| 日韩中文在线电影| 国产手机视频精品| 好吊一区二区三区视频| 高清精品视频| 欧美va日韩va| 韩国三级与黑人| 午夜精品在线| 欧美成人精品1314www| 国产一级免费大片| 亚洲精品一区二区在线播放∴| 日本道精品一区二区三区| 精品中文字幕av| 麻豆国产在线| 欧美日韩激情小视频| 国产av人人夜夜澡人人爽麻豆 | 91成人福利在线| 日本三级黄色大片| 伊人影院久久| 久久久久久中文| 国产成人精品亚洲男人的天堂| 欧美日韩18| 欧美激情在线观看视频| 麻豆91精品91久久久| 国内在线观看一区二区三区| 久久97久久97精品免视看| 欧美日韩一级大片| 激情婷婷久久| 欧美一级大片视频| 久久国产视频一区| 日韩不卡一二三区| 国产日韩欧美视频| jlzzjlzzjlzz亚洲人| 国产高清不卡一区| 国产精品xxx在线观看www| 欧美一级免费片| 99久久99久久精品免费观看| 精品欧美国产一区二区三区不卡| 三级理论午夜在线观看| 国产亚洲欧美日韩俺去了| 日韩欧美视频一区二区| 免费在线观看av网站| 亚洲毛片av在线| 欧美日韩不卡在线视频| 亚洲承认视频| 欧美一区二区三区四区久久| 亚洲图片综合网| 狠狠色狠狠色综合婷婷tag| 色噜噜狠狠狠综合曰曰曰88av| eeuss中文字幕| 重囗味另类老妇506070| 97在线视频一区| 最近中文在线观看| 国产成人综合亚洲网站| 精品中文字幕一区| 日本激情在线观看| 亚洲成人av中文| 在线看的黄色网址| 成人爽a毛片免费啪啪红桃视频| 亚洲精品中文字幕有码专区| 在线观看亚洲网站| 亚洲免费播放| 国产综合视频在线观看| 天天躁日日躁狠狠躁喷水| 中文av一区二区| 青青青青在线视频| www.久久.com| 欧美精品一区二区三区久久久| 亚洲一级片在线播放| 亚洲视频碰碰| 国产美女久久精品| 天天色棕合合合合合合合| 日韩美女视频一区二区| 成人性免费视频| 国产日韩中文在线中文字幕| 精品亚洲国产视频| 欧美三级免费看| 奇米影视一区二区三区小说| 国产三级精品在线不卡| 成人日韩欧美| 欧美中文字幕一二三区视频| jjzz黄色片| 久久亚洲国产| 国产成人亚洲综合91| 黄色av免费观看| 中文字幕一区视频| 北条麻妃av高潮尖叫在线观看| 97se亚洲| 欧美精品在线第一页| 探花国产精品一区二区| 97久久精品人人澡人人爽| 热这里只有精品| 99久久精品一区二区成人| 日韩精品欧美国产精品忘忧草| 欧美成人手机视频| 精品在线一区二区| 亚洲一区二区三区午夜| 成人看片网站| 国产亚洲一区二区在线| xxxx.国产| 成人精品免费视频| 8x8ⅹ国产精品一区二区二区| 日韩国产一二三区| 爽爽爽爽爽爽爽成人免费观看| aaaaaa毛片| 99久久国产综合精品麻豆| 僵尸世界大战2 在线播放| 日本精品一区二区三区在线观看视频| 深夜福利亚洲导航| 一级黄色片在线播放| 国产精品久久毛片| 午夜免费看视频| 久久一级电影| 91免费视频国产| 色av手机在线| 精品国产伦一区二区三区观看体验| 欧美交换国产一区内射| 国产成人精品免费看| 欧美黄色免费网址| 久久精品色播| 奇米4444一区二区三区 | 丰满熟女人妻一区二区三| 国产三级一区二区三区| 91网址在线播放| 99久久99久久精品国产片桃花| 91久久在线播放| 久久香蕉av| 亚洲精品久久久久中文字幕欢迎你 | 日韩欧美字幕| 99re在线观看视频| 成人影院在线播放| 亚洲精品成a人在线观看| 中文在线第一页| 国产精品激情偷乱一区二区∴| 视频免费1区二区三区 | 美日韩精品视频免费看| 丰满人妻一区二区三区无码av| 亚洲亚洲精品在线观看| 可以直接看的无码av| 日本女优在线视频一区二区| 一本久道久久综合狠狠爱亚洲精品| 久久综合偷偷噜噜噜色| 久久全球大尺度高清视频| 精品视频三区| 91精品国产综合久久久久久久久久 | 亚洲美女一区二区三区| 性囗交免费视频观看| 日韩电影在线观看网站| 久久视频免费在线| 欧美成人基地| 国产欧亚日韩视频| 国产探花在线观看| 亚洲性av网站| 成人av手机在线| 色哦色哦哦色天天综合| 午夜免费激情视频| 91麻豆国产香蕉久久精品| 黄大色黄女片18第一次| 亚洲欧洲另类| 樱花www成人免费视频| 欧美日韩破处| 亚洲一区二区三区成人在线视频精品| 99色在线观看| 久久精品国产视频| 亚洲av成人无码久久精品老人| 欧美日韩精品欧美日韩精品一| 精品成人久久久| 综合久久久久久| 国产男男chinese网站| 国产在线不卡一卡二卡三卡四卡| 亚洲精品无码久久久久久| 亚洲综合色站| 天堂精品视频| 日韩精品丝袜美腿| 91网免费观看| 男女啪啪999亚洲精品| 91av视频在线观看| 18视频在线观看网站| 日韩在线视频二区| 户外极限露出调教在线视频| 亚洲成人黄色网| 99久久精品国产色欲| 欧美视频中文字幕| 亚洲欧美自拍视频| 五月婷婷综合激情| 在线免费日韩av| 日韩一区中文字幕| 懂色av粉嫩av浪潮av| 久久青草欧美一区二区三区| 日本不卡视频一区| 国产成人自拍网| 两性午夜免费视频| 久久97超碰色| 五月天av在线播放| 美女视频免费一区| 大香煮伊手机一区| 久久综合九色| 国产91对白刺激露脸在线观看| 亚洲精品影院在线观看| 18禁裸男晨勃露j毛免费观看| 欧美在线黄色| 亚洲黄色网址在线观看| 外国成人免费视频| 在线观看成人一级片| 97精品国产一区二区三区| 亚洲v欧美v另类v综合v日韩v| 九一国产精品| 欧美日韩在线一区二区三区| 免费欧美一区| 欧美中日韩免费视频| 国产乱码精品一区二区三区四区| 日本一区二区三区视频在线播放| 国产成人三级| 亚洲国产欧美日韩| 久久大综合网| 偷拍盗摄高潮叫床对白清晰| 中文av一区| 久艹在线免费观看| 在线视频精品| 黄色三级视频片| 久久国产欧美日韩精品| 6080国产精品| 国产91精品一区二区麻豆亚洲| 在线播放第一页| 99精品在线免费| 欧美偷拍一区二区三区| 国产精品欧美精品| 波多野结衣亚洲一区二区| 亚洲一区二区欧美日韩| 中文字幕亚洲高清| 欧洲av在线精品| 911美女片黄在线观看游戏| 欧美成人高清电影在线| 天堂在线视频网站| 一本色道久久综合亚洲精品小说 | 一区二区三区四区在线免费观看| 日本a在线观看| 色综合色综合色综合色综合色综合 | 欧美一区少妇| 91综合视频| 国产手机免费视频| 久久天天综合| 两性午夜免费视频| 337p粉嫩大胆噜噜噜噜噜91av | 国产精品偷伦免费视频观看的| 伊人久久一区| 精品欧美一区二区精品久久| 四季av一区二区三区免费观看| 久草视频这里只有精品| 天堂在线一区二区| 免费国偷自产拍精品视频| 99久久精品费精品国产一区二区| 美国一级黄色录像| 一区二区三区欧美亚洲| 久久久久久久久久久影院| 欧美女孩性生活视频| 日本高清视频网站| 最近2019中文字幕第三页视频| 国产极品人妖在线观看| 国产精品三级久久久久久电影| 亚洲图色一区二区三区| 日韩在线国产| 在线视频观看日韩| 青青草久久伊人| 久久综合久久久久88| avtt天堂在线| 欧美专区日韩专区| 婷婷视频在线观看| 久久手机免费视频| 日韩精品第一| 牛人盗摄一区二区三区视频| 欧美特黄一区| 国产原创精品在线| 久久女同互慰一区二区三区| 欧美色图亚洲天堂| 欧美日韩精品免费观看视频| 日本亚洲欧美| 欧美激情视频一区二区| 欧美男男gaygay1069| 欧美极品色图| 亚洲国产电影| 蜜桃视频无码区在线观看| 国产精品丝袜91| 亚洲 日本 欧美 中文幕| 亚洲精品国产综合久久| 欧美一卡二卡| 91影视免费在线观看| 99久久精品国产亚洲精品| av污在线观看| 国产亚洲短视频| 中文字幕黄色片| 亚洲男人第一av网站| 国产污视频在线播放| 国产精品swag| 伊人精品在线| 国产国语老龄妇女a片| 亚洲黄色小说网站| 国产女同91疯狂高潮互磨| 日韩中文字幕在线视频| 国产极品久久久久久久久波多结野| 欧美久久久久久一卡四| 欧美一区=区| 日本高清www| 一本到高清视频免费精品| 视频一区二区在线播放| 97成人精品视频在线观看| 美女一区二区在线观看| 少妇高潮喷水在线观看| 99精品欧美一区二区三区小说| 国产成人无码精品久在线观看| 亚洲福利视频在线| 国产中文在线播放| 精品国产免费人成电影在线观...| 亚洲第一黄网| 亚洲男人在线天堂| 欧美视频中文字幕在线| 欧洲综合视频| 国产精品青青在线观看爽香蕉| 日本激情一区| www.色.com| 亚洲一区二区三区视频在线| 婷婷在线观看视频| 5252色成人免费视频| 在线看成人短视频| 久久久久久久久久久久91| 国产精品免费av| www国产一区| 欧美影院在线播放| 成人aaaa| 欧美色图校园春色| 亚洲成av人片观看| 黄色毛片在线看| 成人精品一区二区三区| 亚洲香蕉网站| 国产全是老熟女太爽了| 欧美性生活大片视频| 国产1区在线| 国内外成人免费视频| 石原莉奈在线亚洲三区| 91狠狠综合久久久| 亚洲国产精品成人精品| 日韩欧美一区二区三区在线观看| 中文视频一区视频二区视频三区| 丰满白嫩尤物一区二区| 中文字幕在线欧美| 久久深夜福利免费观看| 精品丝袜久久| 午夜剧场在线免费观看| 一区二区高清在线| 青青草在线视频免费观看| 91亚洲永久免费精品| 性欧美精品高清| 成人免费视频网站入口::| 亚洲精品乱码久久久久久金桔影视| 成人国产激情在线| 欧美日韩不卡在线视频| 国产精品福利av| 四虎在线观看| 99在线视频播放| 美女免费视频一区二区|