精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

亚洲美女淫视频| 99精品综合| 色94色欧美sute亚洲线路一ni | 美女少妇全过程你懂的久久| 91极品视觉盛宴| 亚洲国产精品女人| 美女又黄又免费的视频| www在线观看黄色| 国产精品萝li| 狠狠色噜噜狠狠色综合久| 最新国产中文字幕| 一区在线观看| www日韩中文字幕在线看| 污片免费在线观看| 欧美第一在线视频| 91成人网在线| 日韩精品―中文字幕| 色综合久久影院| 91在线视频18| 亚洲自拍小视频| 日本丰满少妇做爰爽爽| 亚洲国产专区校园欧美| 日韩色av导航| 国产成人免费观看网站| 美女一区二区在线观看| 欧美一级国产精品| 欧美日韩亚洲自拍| 色在线视频观看| 99热精品一区二区| 成人黄色午夜影院| 在线免费一区二区| 亚洲欧美日韩国产一区| 欧美激情手机在线视频 | 红桃视频成人在线观看| 国产一区 在线播放| 色大18成网站www在线观看| 久久影院视频免费| 精品乱码一区二区三区| 亚洲av永久无码国产精品久久| 免费av成人在线| 国产suv精品一区二区| 日韩欧美中文字幕一区二区| 国语精品一区| 美女福利精品视频| 五月婷婷婷婷婷| 欧美日韩123| 亚洲精品中文字幕av| 成人在线视频免费播放| 黄色美女久久久| 精品欧美一区二区在线观看| 日批视频在线看| 日本免费精品| 日韩一区二区免费视频| 色黄视频免费看| 久久久91麻豆精品国产一区| 欧美一二区视频| www.偷拍.com| 久久精品黄色| 在线不卡免费欧美| 久国产精品视频| 嫩呦国产一区二区三区av| 91精品在线免费| 三上悠亚 电影| 136福利精品导航| 亚洲第一区第一页| 在线天堂www在线国语对白| 免费成人蒂法| 国产一区二区黄| 一级黄色毛毛片| 亚洲激情五月| 午夜免费在线观看精品视频| 久久亚洲天堂网| 麻豆精品网站| 国产在线久久久| 亚洲黄色在线播放| 91影院在线免费观看| 欧美性大战久久久久| 91啦中文在线| 亚洲美女区一区| 人妻无码久久一区二区三区免费| 成年人在线网站| 欧美在线短视频| 欧美精品一区二区性色a+v| 菠萝蜜视频国产在线播放| 久久综合成人精品亚洲另类欧美| 日本10禁啪啪无遮挡免费一区二区| 岛国最新视频免费在线观看| 亚洲丝袜另类动漫二区| 久久久久免费网| 成人免费在线电影| 亚洲乱码中文字幕| 免费在线a视频| 福利一区二区三区视频在线观看 | 国产原创精品在线| 在线精品国产亚洲| 国产一区二区三区丝袜| 中文字幕电影av| 男人天堂欧美日韩| 成人国产精品久久久久久亚洲| 天天操天天干天天操| 国产精品超碰97尤物18| 国产免费黄色小视频| 国产成人精品一区二区三区视频 | 欧美怡红院视频| 手机看片国产精品| 欧美一区三区| 97人人爽人人喊人人模波多| 亚洲熟妇av乱码在线观看| 成人国产精品免费| 99精品在线直播| 毛片网站在线观看| 亚洲一区免费在线观看| 亚洲人辣妹窥探嘘嘘| 国产三级精品三级在线观看国产| 中文字幕国产日韩| 天天舔天天操天天干| 午夜日韩在线| 国产精品自产拍在线观看中文| 日本成人动漫在线观看| 综合久久久久综合| 麻豆传传媒久久久爱| av日韩在线播放| 亚洲成人网在线| 日韩精品123区| 日韩精品一级中文字幕精品视频免费观看 | 国产亚洲成aⅴ人片在线观看 | 五月天亚洲综合情| 亚洲国产欧美日本视频| 亚洲丁香久久久| 精品99在线观看| 国内精品视频666| 日韩欧美在线一区二区| 中文字幕资源网在线观看免费| 精品免费日韩av| 加勒比婷婷色综合久久| 自拍视频亚洲| 国产男人精品视频| 最新电影电视剧在线观看免费观看| 色综合天天狠狠| 91精品人妻一区二区| 亚洲精品1234| 国产乱码精品一区二区三区日韩精品 | 粉嫩aⅴ一区二区三区四区五区| 欧洲一区二区日韩在线视频观看免费 | www.久久久精品| 日本不卡高清| 国产精品看片资源| 国产乱视频在线观看| 色激情天天射综合网| 熟女俱乐部一区二区| 天堂在线一区二区| 色播五月综合| 久久亚洲人体| 精品激情国产视频| 免费精品在线视频| 麻豆精品久久精品色综合| 999在线免费观看视频| 国产精品久久久免费看| 天堂中文av在线| 亚洲 国产 图片| 永久免费在线观看视频| 欧美中文字幕亚洲一区二区va在线| 中文字字幕码一二三区| 久久99伊人| 亚洲欧美成人一区| www.久久爱.com| 欧美大胆a视频| 天天干天天摸天天操| 精品久久久免费| 久久久久久久久久久久| 美日韩一区二区| 日本福利视频网站| 欧美一区 二区| 国产激情久久久| 国内精品久久久久国产| 欧美精品一区二区三区在线| 国产精品果冻传媒| 日韩午夜激情| 少妇免费毛片久久久久久久久| 久久电影天堂| 欧美激情亚洲综合一区| 久草视频在线看| 51午夜精品国产| 国产成人无码精品久在线观看 | 亚洲精品视频大全| 青青草91视频| 又大又硬又爽免费视频| 国产一区日韩| 亚洲影视九九影院在线观看| 无码小电影在线观看网站免费| 中文字幕在线精品| 少妇荡乳情欲办公室456视频| 日本高清无吗v一区| 曰本女人与公拘交酡| 久久久亚洲精品一区二区三区 | 夜夜添无码一区二区三区| 国产欧美日韩免费观看| 97超级碰碰| 欧亚一区二区| 欧美极品在线视频| 日本在线视频网| 亚洲欧美成人一区二区在线电影| 国产肥老妇视频| 国产亚洲短视频| 欧美老女人bb| 免费成人av在线| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 婷婷六月综合| 免费日韩av电影| 日韩三级网址| 成人黄色在线免费| 久久亚洲精品爱爱| 欧美制服第一页| 精灵使的剑舞无删减版在线观看| 中国日韩欧美久久久久久久久| 神马午夜精品95| 日韩欧美一区二区免费| 怡春院在线视频| 国产精品二区一区二区aⅴ污介绍| 999精品免费视频| 国产成人午夜精品影院观看视频| 五月天亚洲视频| 日韩成人精品视频| 国产最新免费视频| 亚洲免费精品| 韩国无码av片在线观看网站| 久久久久久久久久久妇女| 亚洲精品高清视频| 国产一区二区三区四区| 久久综合毛片| 日韩有码中文字幕在线| 国产精品国产三级欧美二区| 欧美视频二区欧美影视| 91精品在线观看视频| 日韩一区中文| 国产在线999| 欧美在线一级| 国产精品网站视频| 国产69精品久久久久按摩| 国产精品久久久久久亚洲影视| 免费成人美女女| 国产精品 欧美在线| 成人爽a毛片免费啪啪| 一区二区欧美久久| 美女做暖暖视频免费在线观看全部网址91 | heyzo国产| 精品一区欧美| 久久人人97超碰人人澡爱香蕉| 粉嫩的18在线观看极品精品| 91原创国产| 亚洲午夜免费| 国产精品一国产精品最新章节| 伊人www22综合色| 国产一区二区在线网站| 精品深夜福利视频| 九九九九九九精品| 国产成人精品免费视| 亚洲国产欧美不卡在线观看| 99久久视频| 欧美激情亚洲天堂| 最新成人av网站| 日韩中文字幕三区| 久热综合在线亚洲精品| 日本肉体xxxx裸体xxx免费| 极品尤物av久久免费看| 成人三级做爰av| aaa亚洲精品| xxxx日本黄色| 1024国产精品| 久久一二三四区| 色婷婷av一区二区三区软件| 亚洲网站在线免费观看| 日韩亚洲欧美成人一区| 三级小视频在线观看| 一区二区三区四区视频| 黄色网页在线观看| 91高潮在线观看| 国产精品天堂蜜av在线播放 | 免费观看精品视频| 久久精品国产999大香线蕉| 中文字幕永久免费| 91浏览器在线视频| 日韩在线一区视频| 成人免费高清在线| 丰满的亚洲女人毛茸茸| 一区二区三区中文免费| caoporn国产| 欧美一区二区视频在线观看2020| 日韩中文字幕影院| 中文字幕av日韩| 国产一线二线在线观看| 国产精品都在这里| 51亚洲精品| 亚洲精品日韩成人| 亚洲精品婷婷| 1314成人网| 国产日韩精品一区| 国产成人精品亚洲男人的天堂| 欧美色涩在线第一页| 午夜影院免费在线观看| 337p亚洲精品色噜噜狠狠| 五月婷婷六月丁香综合| 久久精品国产2020观看福利| 午夜影院一区| 亚洲综合中文字幕在线观看| jlzzjlzz亚洲女人| 欧美大片在线播放| 国产精品一区专区| 免费一级特黄3大片视频| 午夜成人在线视频| 精品国产av一区二区| 在线看国产精品| 电影一区二区三| 国产一区二区三区四区hd| 亚洲mv大片欧洲mv大片| 在线免费视频一区| 久久精品网站免费观看| 日本三级一区二区| 精品久久久久99| av免费在线免费| 国产免费一区二区三区在线观看| 九九视频免费观看视频精品| 日韩精品视频在线观看视频| 国产寡妇亲子伦一区二区| 国产精品18在线| 欧美色手机在线观看| 国产对白叫床清晰在线播放| 5566成人精品视频免费| 精品国产影院| 欧美视频在线观看视频| 国产精品一级二级三级| 日韩在线中文字幕视频| 91精品国模一区二区三区| av午夜在线| 国产精品视频精品| 成人情趣视频网站| 国产精品久久久毛片| 国产精品三级久久久久三级| 中文在线观看免费高清| 日韩在线免费观看视频| 视频在线观看入口黄最新永久免费国产 | 国产精品va在线观看无码| 国产精品自在欧美一区| 91视频免费在线看| 日韩欧美国产午夜精品| 秋霞在线午夜| 国产精品一区二区三区在线| 亚洲精品乱码| 伊人网伊人影院| 欧美系列在线观看| 男女啪啪在线观看| 国内精品在线一区| 精品视频在线你懂得| 日韩免费一级视频| 久久久亚洲欧洲日产国码αv| 波多野结衣视频网址| 中文字幕亚洲精品| 国产精品视频首页| 国产免费裸体视频| 99久久国产综合精品色伊 | 亚洲在线电影| japanese中文字幕| 欧美高清性hdvideosex| 日本高清成人vr专区| 国产乱子伦精品| 日韩国产高清在线| 女教师淫辱の教室蜜臀av软件| 日韩一区二区三区三四区视频在线观看| 欧美韩日亚洲| 欧美精品免费观看二区| 麻豆精品一区二区av白丝在线| 91视频青青草| 亚洲精品97久久| 亚洲制服国产| 国产视频一区二区不卡| 日韩电影在线一区二区三区| 极品色av影院| 亚洲第一色在线| 香蕉成人影院| 国产1区2区3区中文字幕| 97精品久久久午夜一区二区三区 | 欧美三级日本三级| 日韩大陆欧美高清视频区| 在线三级电影| 麻豆av一区二区三区| 久久精品噜噜噜成人av农村| 国产在线拍揄自揄拍无码视频| 国产亚洲精品日韩| 伊人精品综合| 色国产在线视频| 亚洲国产日日夜夜| 91社区在线观看| 国内外成人免费视频| 久草热8精品视频在线观看| 国产在线观看99| 久久色精品视频| 九色精品国产蝌蚪| 久久久xxx| 国产精品自拍小视频| 成人久久综合|