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

除了緩存,Redis都解決了哪些問題?

存儲(chǔ) Redis
本篇著重從抽象層面來解釋下redis的各項(xiàng)功能以及其存在的目的,而沒有關(guān)心其具體的細(xì)節(jié)是什么。從而可以聚焦于其解決的問題,依據(jù)抽象層面的概念可以使得我們?cè)谔囟ǖ膱?chǎng)景下選擇更合適的方案,而非局限于其技術(shù)細(xì)節(jié)。

目錄:

  • 1 從零開始
  • 2 基于本機(jī)內(nèi)存的緩存
  • 3 服務(wù)端的Redis
  • 3.1 持久化(Persistence)
  • 3.2 哨兵(Sentinel)和復(fù)制(Replication)
  • 3.3 集群(Cluster)
  • 4 客戶端的Redis
  • 4.1 數(shù)據(jù)類型
  • 4.2 事務(wù)
  • 4.3 Lua腳本
  • 4.4 管道
  • 4.5 分布式鎖
  • 總結(jié)

先看一下Redis是一個(gè)什么東西。官方簡(jiǎn)介解釋到:Redis是一個(gè)基于BSD開源的項(xiàng)目,是一個(gè)把結(jié)構(gòu)化的數(shù)據(jù)放在內(nèi)存中的一個(gè)存儲(chǔ)系統(tǒng),你可以把它作為數(shù)據(jù)庫(kù),緩存和消息中間件來使用。同時(shí)支持strings,lists,hashes,sets,sorted sets,bitmaps,hyperloglogs和geospatial indexes等數(shù)據(jù)類型。它還內(nèi)建了復(fù)制,lua腳本,LRU,事務(wù)等功能,通過redis sentinel實(shí)現(xiàn)高可用,通過redis cluster實(shí)現(xiàn)了自動(dòng)分片。以及事務(wù),發(fā)布/訂閱,自動(dòng)故障轉(zhuǎn)移等等。

除了緩存,Redis都解決了哪些問題?

綜上所述,Redis提供了豐富的功能,初次見到可能會(huì)感覺眼花繚亂,這些功能都是干嘛用的?都解決了什么問題?什么情況下才會(huì)用到相應(yīng)的功能?那么下面從零開始,一步一步的演進(jìn)來粗略的解釋下。

1 從零開始

最初的需求非常簡(jiǎn)單,我們有一個(gè)提供熱點(diǎn)新聞列表的api:http://api.xxx.com/hot-news,api的消費(fèi)者抱怨說每次請(qǐng)求都要2秒左右才能返回結(jié)果。

隨后我們就著手于如何提升一下api消費(fèi)者感知的性能,很快最簡(jiǎn)單粗暴的***個(gè)方案就出來了:為API的響應(yīng)加上基于HTTP的緩存控制 cache-control:max-age=600 ,即讓消費(fèi)者可以緩存這個(gè)響應(yīng)十分鐘。如果api消費(fèi)者如果有效的利用了響應(yīng)中的緩存控制信息,則可以有效的改善其感知的性能(10分鐘以內(nèi))。但是還有2個(gè)弊端:***個(gè)是在緩存生效的10分鐘內(nèi),api消費(fèi)者可能會(huì)得到舊的數(shù)據(jù);第二個(gè)是如果api的客戶端無視緩存直接訪問API依然是需要2秒,治標(biāo)不治本吶。

2 基于本機(jī)內(nèi)存的緩存

為了解決調(diào)用API依然需要2秒的問題,經(jīng)過排查,其主要原因在于使用SQL獲取熱點(diǎn)新聞的過程中消耗了將近2秒的時(shí)間,于是乎,我們又想到了一個(gè)簡(jiǎn)單粗暴的解決方案,即把SQL查詢的結(jié)果直接緩存在當(dāng)前api服務(wù)器的內(nèi)存中(設(shè)置緩存有效時(shí)間為1分鐘)。后續(xù)1分鐘內(nèi)的請(qǐng)求直接讀緩存,不再花費(fèi)2秒去執(zhí)行SQL了。假如這個(gè)api每秒接收到的請(qǐng)求時(shí)100個(gè),那么一分鐘就是6000個(gè),也就是只有前2秒擁擠過來的請(qǐng)求會(huì)耗時(shí)2秒,后續(xù)的58秒中的所有請(qǐng)求都可以做到即使響應(yīng),而無需再等2秒的時(shí)間。

其他API的小伙伴發(fā)現(xiàn)這是個(gè)好辦法,于是很快我們就發(fā)現(xiàn)API服務(wù)器的內(nèi)存要爆滿了。。。

3 服務(wù)端的Redis

在API服務(wù)器的內(nèi)存都被緩存塞滿的時(shí)候,我們發(fā)現(xiàn)不得不另想解決方案了。最直接的想法就是我們把這些緩存都丟到一個(gè)專門的服務(wù)器上吧,把它的內(nèi)存配置的大大的。然后我們就盯上了redis。。。至于如何配置部署redis這里不解釋了,redis官方有詳細(xì)的介紹。隨后我們就用上了一臺(tái)單獨(dú)的服務(wù)器作為Redis的服務(wù)器,API服務(wù)器的內(nèi)存壓力得以解決。

3.1 持久化(Persistence)

單臺(tái)的Redis服務(wù)器一個(gè)月總有那么幾天心情不好,心情不好就罷工了,導(dǎo)致所有的緩存都丟失了(redis的數(shù)據(jù)是存儲(chǔ)在內(nèi)存的嘛)。雖然可以把Redis服務(wù)器重新上線,但是由于內(nèi)存的數(shù)據(jù)丟失,造成了緩存雪崩,API服務(wù)器和數(shù)據(jù)庫(kù)的壓力還是一下子就上來了。所以這個(gè)時(shí)候Redis的持久化功能就派上用場(chǎng)了,可以緩解一下緩存雪崩帶來的影響。redis的持久化指的是redis會(huì)把內(nèi)存的中的數(shù)據(jù)寫入到硬盤中,在redis重新啟動(dòng)的時(shí)候加載這些數(shù)據(jù),從而***限度的降低緩存丟失帶來的影響。

3.2 哨兵(Sentinel)和復(fù)制(Replication)

Redis服務(wù)器毫無征兆的罷工是個(gè)麻煩事。那么怎辦辦?答曰:備份一臺(tái),你掛了它上。那么如何得知某一臺(tái)redis服務(wù)器掛了,如何切換,如何保證備份的機(jī)器是原始服務(wù)器的完整備份呢?這時(shí)候就需要Sentinel和Replication出場(chǎng)了。Sentinel可以管理多個(gè)Redis服務(wù)器,它提供了監(jiān)控,提醒以及自動(dòng)的故障轉(zhuǎn)移的功能;Replication則是負(fù)責(zé)讓一個(gè)Redis服務(wù)器可以配備多個(gè)備份的服務(wù)器。Redis也是利用這兩個(gè)功能來保證Redis的高可用的。此外,Sentinel功能則是對(duì)Redis的發(fā)布和訂閱功能的一個(gè)利用。

3.3 集群(Cluster)

單臺(tái)服務(wù)器資源的總是有上限的,CPU資源和IO資源我們可以通過主從復(fù)制,進(jìn)行讀寫分離,把一部分CPU和IO的壓力轉(zhuǎn)移到從服務(wù)器上。但是內(nèi)存資源怎么辦,主從模式做到的只是相同數(shù)據(jù)的備份,并不能橫向擴(kuò)充內(nèi)存;單臺(tái)機(jī)器的內(nèi)存也只能進(jìn)行加大處理,但是總有上限的。所以我們就需要一種解決方案,可以讓我們橫向擴(kuò)展。最終的目的既是把每臺(tái)服務(wù)器只負(fù)責(zé)其中的一部分,讓這些所有的服務(wù)器構(gòu)成一個(gè)整體,對(duì)外界的消費(fèi)者而言,這一組分布式的服務(wù)器就像是一個(gè)集中式的服務(wù)器一樣(之前在解讀REST的博客中解釋過分布式于基于網(wǎng)絡(luò)的差異:基于網(wǎng)絡(luò)應(yīng)用的架構(gòu))。

在Redis官方的分布式方案出來之前,有twemproxy和codis兩種方案,這兩個(gè)方案總體上來說都是依賴proxy來進(jìn)行分布式的,也就是說redis本身并不關(guān)心分布式的事情,而是交由twemproxy和codis來負(fù)責(zé)。而redis官方給出的cluster方案則是把分布式的這部分事情做到了每一個(gè)redis服務(wù)器中,使其不再需要其他的組件就可以獨(dú)立的完成分布式的要求。我們這里不關(guān)心這些方案的優(yōu)略,我們關(guān)注一下這里的分布式到底是要處理那些事情?也就是twemproxy和codis獨(dú)立處理的處理分布式的這部分邏輯和cluster集成到redis服務(wù)的這部分邏輯到底在解決什么問題?

如我們前面所說的,一個(gè)分布式的服務(wù)在外界看來就像是一個(gè)集中式的服務(wù)一樣。那么要做到這一點(diǎn)就面臨著有一個(gè)問題需要解決:既是增加或減少分布式服務(wù)中的服務(wù)器的數(shù)量,對(duì)消費(fèi)這個(gè)服務(wù)的客戶端而言應(yīng)該是無感的;那么也就意味著客戶端不能穿透分布式服務(wù),把自己綁死到某一個(gè)臺(tái)的服務(wù)器上去,因?yàn)橐坏┤绱耍憔驮僖矡o法新增服務(wù)器,也無法進(jìn)行故障替換。解決這個(gè)問題有兩個(gè)路子:***個(gè)路子最直接,那就是我加一個(gè)中間層來隔離這種具體的依賴,即twemproxy采用的方式,讓所有的客戶端只能通過它來消費(fèi)redsi服務(wù),通過它來隔離這種依賴(但是你會(huì)發(fā)現(xiàn)twermproxy會(huì)成為一個(gè)單點(diǎn)),這種情況下每臺(tái)redis服務(wù)器都是獨(dú)立的,它們之間彼此不知對(duì)方的存在;第二個(gè)路子是讓redis服務(wù)器知道彼此的存在,通過重定向的機(jī)制來引導(dǎo)客戶端來完成自己所需要的操作,比如客戶端鏈接到了某一個(gè)redis服務(wù)器,說我要執(zhí)行這個(gè)操作,redis服務(wù)器發(fā)現(xiàn)自己無法完成這個(gè)操作,那么就把能完成這個(gè)操作的服務(wù)器的信息給到客戶端,讓客戶端去請(qǐng)求另外的一個(gè)服務(wù)器,這時(shí)候你就會(huì)發(fā)現(xiàn)每一個(gè)redis服務(wù)器都需要保持一份完整的分布式服務(wù)器信息的一份資料,不然它怎么知道讓客戶端去找其他的哪個(gè)服務(wù)器來執(zhí)行客戶端想要的操作呢。

上面這一大段解釋了這么多,不知有沒有發(fā)現(xiàn)不管是***個(gè)路子還是第二個(gè)路子,都有一個(gè)共同的東西存在,那就是分布式服務(wù)中所有服務(wù)器以及其能提供的服務(wù)的信息。這些信息無論如何也是要存在的,區(qū)別在于***個(gè)路子是把這部分信息單獨(dú)來管理,用這些信息來協(xié)調(diào)后端的多個(gè)獨(dú)立的redis服務(wù)器;第二個(gè)路子則是讓每一個(gè)redis服務(wù)器都持有這份信息,彼此知道對(duì)方的存在,來達(dá)成和***個(gè)路子一樣的目的,優(yōu)點(diǎn)是不再需要一個(gè)額外的組件來處理這部分事情。

Redis Cluster的具體實(shí)現(xiàn)細(xì)節(jié)則是采用了Hash槽的概念,即預(yù)先分配出來16384個(gè)槽:在客戶端通過對(duì)Key進(jìn)行CRC16(key)% 16384運(yùn)算得到對(duì)應(yīng)的槽是哪一個(gè);在redis服務(wù)端則是每個(gè)服務(wù)器負(fù)責(zé)一部分槽,當(dāng)有新的服務(wù)器加入或者移除的時(shí)候,再來遷移這些槽以及其對(duì)應(yīng)的數(shù)據(jù),同時(shí)每個(gè)服務(wù)器都持有完整的槽和其對(duì)應(yīng)的服務(wù)器的信息,這就使得服務(wù)器端可以進(jìn)行對(duì)客戶端的請(qǐng)求進(jìn)行重定向處理。

4 客戶端的Redis

上面的第三小節(jié)主要介紹的是Redis服務(wù)端的演進(jìn)步驟,解釋了Redis如何從一個(gè)單機(jī)的服務(wù),進(jìn)化為一個(gè)高可用的、去中心化的、分布式的存儲(chǔ)系統(tǒng)。這一小節(jié)則是關(guān)注下客戶端可以消費(fèi)的redis服務(wù)。

4.1 數(shù)據(jù)類型

redis支持豐富的數(shù)據(jù)類型,從最基礎(chǔ)的string到復(fù)雜的常用到的數(shù)據(jù)結(jié)構(gòu)都有支持:

  • string:最基本的數(shù)據(jù)類型,二進(jìn)制安全的字符串,***512M。
  • list:按照添加順序保持順序的字符串列表。
  • set:無序的字符串集合,不存在重復(fù)的元素。
  • sorted set:已排序的字符串集合。
  • hash:key-value對(duì)的一種集合。
  • bitmap:更細(xì)化的一種操作,以bit為單位。
  • hyperloglog:基于概率的數(shù)據(jù)結(jié)構(gòu)。

這些眾多的數(shù)據(jù)類型,主要是為了支持各種場(chǎng)景的需要,當(dāng)然每種類型都有不同的時(shí)間復(fù)雜度。其實(shí)這些復(fù)雜的數(shù)據(jù)結(jié)構(gòu)相當(dāng)于之前我在《解讀REST》這個(gè)系列博客基于網(wǎng)絡(luò)應(yīng)用的架構(gòu)風(fēng)格中介紹到的遠(yuǎn)程數(shù)據(jù)訪問(Remote Data Access = RDA)的具體實(shí)現(xiàn),即通過在服務(wù)器上執(zhí)行一組標(biāo)準(zhǔn)的操作命令,在服務(wù)端之間得到想要的縮小后的結(jié)果集,從而簡(jiǎn)化客戶端的使用,也可以提高網(wǎng)絡(luò)性能。比如如果沒有l(wèi)ist這種數(shù)據(jù)結(jié)構(gòu),你就只能把list存成一個(gè)string,客戶端拿到完整的list,操作后再完整的提交給redis,會(huì)產(chǎn)生很大的浪費(fèi)。

4.2 事務(wù)

上述數(shù)據(jù)類型中,每一個(gè)數(shù)據(jù)類型都有獨(dú)立的命令來進(jìn)行操作,很多情況下我們需要一次執(zhí)行不止一個(gè)命令,而且需要其同時(shí)成功或者失敗。redis對(duì)事務(wù)的支持也是源自于這部分需求,即支持一次性按順序執(zhí)行多個(gè)命令的能力,并保證其原子性。

4.3 Lua腳本

在事務(wù)的基礎(chǔ)上,如果我們需要在服務(wù)端一次性的執(zhí)行更復(fù)雜的操作(包含一些邏輯判斷),則lua就可以排上用場(chǎng)了(比如在獲取某一個(gè)緩存的時(shí)候,同時(shí)延長(zhǎng)其過期時(shí)間)。redis保證lua腳本的原子性,一定的場(chǎng)景下,是可以代替redis提供的事務(wù)相關(guān)的命令的。相當(dāng)于基于網(wǎng)絡(luò)應(yīng)用的架構(gòu)風(fēng)格中介紹到的遠(yuǎn)程求值(Remote Evluation = REV)的具體實(shí)現(xiàn)。

4.4 管道

因?yàn)閞edis的客戶端和服務(wù)器的連接時(shí)基于TCP的, 默認(rèn)每次連接都時(shí)只能執(zhí)行一個(gè)命令。管道則是允許利用一次連接來處理多條命令,從而可以節(jié)省一些tcp連接的開銷。管道和事務(wù)的差異在于管道是為了節(jié)省通信的開銷,但是并不會(huì)保證原子性。

4.5 分布式鎖

官方推薦采用Redlock算法,即使用string類型,加鎖的時(shí)候給的一個(gè)具體的key,然后設(shè)置一個(gè)隨機(jī)的值;取消鎖的時(shí)候用使用lua腳本來先執(zhí)行獲取比較,然后再刪除key。具體的命令如下:

  1. SET resource_name my_random_value NX PX 30000 
  2. if redis.call("get",KEYS[1]) == ARGV[1] then 
  3.  return redis.call("del",KEYS[1]) 
  4. else 
  5.  return 0 
  6. end 

總結(jié)

本篇著重從抽象層面來解釋下redis的各項(xiàng)功能以及其存在的目的,而沒有關(guān)心其具體的細(xì)節(jié)是什么。從而可以聚焦于其解決的問題,依據(jù)抽象層面的概念可以使得我們?cè)谔囟ǖ膱?chǎng)景下選擇更合適的方案,而非局限于其技術(shù)細(xì)節(jié)。

以上均是筆者個(gè)人的一些理解,如果不當(dāng)之處,歡迎指正。

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

2019-04-09 09:22:32

Redis內(nèi)存緩存

2018-10-19 11:55:36

數(shù)據(jù)庫(kù)Redis命令

2020-11-02 13:25:45

Redis數(shù)據(jù)庫(kù)開源

2022-02-19 22:02:21

Redisvalue元素

2023-12-08 17:24:14

Redis緩存服務(wù)器

2023-10-08 07:15:54

NGINX網(wǎng)關(guān)參數(shù)

2019-10-23 09:00:06

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

2025-01-10 09:13:36

2010-10-17 13:42:28

云計(jì)算醫(yī)療平臺(tái)開發(fā)與測(cè)試

2022-03-08 00:07:51

緩存雪崩數(shù)據(jù)庫(kù)

2025-02-04 17:40:44

2021-08-02 19:18:32

Redis緩存高并發(fā)

2017-10-30 13:27:35

緩存代碼解決

2024-06-14 07:59:00

2023-01-31 08:37:11

緩存穿透擊穿

2020-03-27 16:27:03

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

2010-08-11 11:12:46

IT公司面試問題

2020-09-17 17:53:12

面試ArrayList數(shù)組

2019-06-05 15:23:09

Redis緩存存儲(chǔ)
點(diǎn)贊
收藏

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

国产精品111| www亚洲成人| 欧美一区二区公司| 男女精品网站| 日韩在线视频一区| 丰满少妇一区二区三区专区| 久久av色综合| 国产亚洲1区2区3区| 国产精品一久久香蕉国产线看观看| 超碰人人人人人人人| 亚洲午夜精品| 在线观看中文字幕不卡| 香蕉精品视频在线| 色呦呦免费观看| 日韩av午夜在线观看| 久久综合久中文字幕青草| 182在线视频| 日韩深夜福利网站| 精品久久久久久久久久久久久| 日韩精品无码一区二区三区| 国产成a人亚洲精v品无码 | 天天综合色天天综合色hd| 国产www视频| 日韩av在线播放中文字幕| 欧美另类精品xxxx孕妇| 成熟人妻av无码专区| xvideos.蜜桃一区二区| 欧美精品一二三四| 欧美黄网站在线观看| 日本电影在线观看| 亚洲欧洲色图综合| 日本一区二区不卡高清更新| 午夜精品久久久久久久爽| 奇米精品一区二区三区在线观看 | 精品国产一区二区三区四区精华| 中文字幕日韩三级| 99热精品在线观看| 免费99精品国产自在在线| 男生草女生视频| 超碰cao国产精品一区二区| 欧美理论电影在线| 久久久久久久久久福利| 国产在线88av| 亚洲午夜在线视频| 成年在线观看视频| 91国内在线| 亚洲三级电影网站| 中文字幕人成一区| 香蕉视频免费在线播放| 中文字幕第一区综合| 免费一区二区三区在在线视频| 亚洲福利在线观看视频| 国产精品一区二区三区乱码| 成人写真视频福利网| 最近中文字幕在线观看视频| 免费在线视频一区| 国产精品男女猛烈高潮激情| 国产黄色免费观看| 美女精品网站| 国产精品1234| 一区两区小视频| 麻豆91小视频| 91精品啪aⅴ在线观看国产| 中文天堂在线播放| 美腿丝袜亚洲色图| 成人网在线免费观看| va婷婷在线免费观看| 国产裸体歌舞团一区二区| 95av在线视频| 性欧美18一19性猛交| 懂色av噜噜一区二区三区av| 丁香五月网久久综合| 黄色av小说在线观看| 高清不卡一区二区| 国产免费一区二区三区| 欧美视频综合| 国产精品天干天干在线综合| 国产91av视频在线观看| 成人看片免费| 亚洲第一主播视频| 日韩黄色片视频| 国产欧美在线观看免费| 欧美一级艳片视频免费观看| 99精品一区二区三区无码吞精| 97久久超碰| 日韩av网站在线| chinese麻豆新拍video| 国产精品手机在线播放| 中文精品99久久国产香蕉| 成年人视频软件| 亚洲中无吗在线| 欧美二区乱c黑人| 日本在线视频免费| 美女91精品| 热久久这里只有| 国产伦子伦对白视频| 国产精品18久久久久久vr| 91手机在线视频| 肥臀熟女一区二区三区| 久久婷婷国产综合精品青草 | www.成人在线观看| 成人国产免费视频| 欧美日韩一区二区视频在线观看| 中国日本在线视频中文字幕| 亚洲精选一二三| 国产在线播放观看| 桃子视频成人app| 欧美日韩国产中文| 这里只有精品在线观看视频| 免费成人结看片| 亚洲全黄一级网站| 亚洲av无码一区二区三区在线| 日韩午夜av| 国产中文字幕91| 三级网站在线看| 欧美国产日本视频| 欧美这里只有精品| 黄色精品视频| 亚洲第一av在线| 欧美做爰啪啪xxxⅹ性| 午夜亚洲伦理| 99在线国产| 精品推荐蜜桃传媒| 亚洲综合成人网| 超碰av在线免费观看| 三级欧美日韩| 亚洲免费人成在线视频观看| 91l九色lporny| 亚洲乱亚洲高清| 久久久久久亚洲综合影院红桃| 成人免费xxxxx在线观看| 欧美一区二区三区激情| 国产欧美一二三区| 国产二区视频在线| 久久青草视频| 亚洲欧洲偷拍精品| 日韩精品一区二区av| 久久99国产精品尤物| 麻豆传媒一区| 成人免费网址| 91精品视频网| 人妻视频一区二区| 亚洲女人av| 国产传媒一区二区| 黄色成人在线| 欧美久久久一区| 久久久视频6r| 亚洲国产裸拍裸体视频在线观看乱了中文 | av鲁丝一区鲁丝二区鲁丝三区| 99久久这里只有精品| 日本国产高清不卡| 亚洲色欧美另类| 亚洲国产视频a| 亚洲国产高清av| 国产精品最新| 国产91九色视频| 肉丝一区二区| 欧美性猛交xxxx久久久| 奇米视频888| 日韩一区三区| 国产欧美日韩91| 美国一级片在线免费观看视频| 欧美日韩国产色视频| 超碰caoprom| 尤物网精品视频| 国产日韩精品一区观看| 日韩影视在线| 日韩欧美国产一区在线观看| 潮喷失禁大喷水aⅴ无码| 欧美亚洲自偷自偷| 欧美一进一出视频| 国模视频一区| 中文字幕亚洲无线码a| 日本成人一级片| 久久久久久久国产精品影院| 日本成人黄色网| 成人短片线上看| 国产久一一精品| 国产网站在线免费观看| 欧美一区二区三区在线视频| 成熟的女同志hd| 国产精品一区二区无线| 大伊香蕉精品视频在线| 亚洲2区在线| 久久久人成影片一区二区三区观看| www.狠狠干| 黄色成人在线播放| 97超碰在线免费观看| 日本在线不卡一区| 在线观看国产一区| 亚洲一区二区三区久久久| 日韩视频免费观看| 高清一区二区三区四区| 日韩欧美综合在线视频| 国产精品av久久久久久无| 青青草国产精品亚洲专区无| 在线看成人av电影| 盗摄牛牛av影视一区二区| 欧美自拍视频在线观看| av播放在线| 日韩欧美成人激情| 91丝袜一区二区三区| 中文字幕一区免费在线观看| 欧洲熟妇的性久久久久久| 亚洲自啪免费| 久久久一二三四| 蜜桃视频欧美| 91精品视频一区| 日韩影院在线| 久久伊人91精品综合网站| 国内爆初菊对白视频| 91久久人澡人人添人人爽欧美| 日韩精品电影一区二区三区| 久久99国产乱子伦精品免费| 人人妻人人添人人爽欧美一区| 美女久久99| 99久久精品久久久久久ai换脸| 不卡av播放| 九九精品在线观看| av在线1区2区| 日韩欧美久久久| 欧美brazzers| 一区二区三区产品免费精品久久75| 一区二区精品免费| 国产宾馆实践打屁股91| 亚洲中文字幕无码av永久| 国产高清一区| 国偷自产av一区二区三区小尤奈| 欧美与亚洲与日本直播| 午夜欧美大片免费观看| 免费黄色网址在线观看| 亚洲男人第一网站| 蜜臀久久99精品久久久| 午夜久久电影网| 国产主播在线播放| 亚洲最大色网站| 疯狂撞击丝袜人妻| 国产欧美精品一区二区色综合| 性久久久久久久久久久| 韩国欧美一区二区| 九热视频在线观看| 嫩草成人www欧美| 欧美在线观看视频免费| 国产精品毛片一区二区在线看| 热re99久久精品国产99热| 国产精品自在| 91在线看网站| 黄瓜视频成人app免费| 亚州国产精品久久久| h片在线播放| 久久视频在线直播| 成年人视频在线看| 精品成人一区二区三区| 精品人妻一区二区三区换脸明星| 欧美日韩国产综合一区二区| 欧美三级网站在线观看| 天天影视色香欲综合网老头| 国产无遮挡aaa片爽爽| 亚洲精品亚洲人成人网在线播放| 久久精品—区二区三区舞蹈| 久久久久久久网| 亚洲精品视频久久久| 92国产精品观看| 亚洲熟妇一区二区三区| 久久影院午夜论| 日本xxx在线播放| 久久嫩草精品久久久久| 四虎影成人精品a片| 91在线国产福利| 一级国产黄色片| 久久久不卡影院| 少妇视频在线播放| 国产精品女主播av| 亚洲精品自拍视频在线观看| 综合在线观看色| 可以直接看的黄色网址| 最好看的中文字幕久久| 波多野结衣爱爱视频| 亚洲在线视频网站| 日韩特黄一级片| 日本电影亚洲天堂一区| 96日本xxxxxⅹxxx17| 欧洲精品一区二区| 国产精品人人爽| 欧美刺激午夜性久久久久久久| 国产77777| 日韩精品在线观看网站| 亚洲欧洲视频在线观看| 夜夜躁日日躁狠狠久久88av| 午夜在线视频| 欧美极品少妇与黑人| 中文字幕在线免费观看视频| 国产精品日韩在线播放| 日韩成人av电影| 成人黄色午夜影院| 韩国精品福利一区二区三区| 免费看成人片| 久久中文视频| 一卡二卡三卡视频| 欧美aⅴ一区二区三区视频| 91亚洲一区二区| 不卡av免费在线观看| 在线看片中文字幕| 亚洲欧洲日韩在线| 日本网站在线免费观看| 在线亚洲精品福利网址导航| 国产丝袜在线视频| 亚洲人成电影在线| 性开放的欧美大片| 日本一区二区三区四区视频| 国产一区二区高清在线| 欧美日韩在线高清| 国产精品99一区二区三| 国产无限制自拍| 久久精品国产精品亚洲红杏| 日韩精品人妻中文字幕有码| 国产欧美日韩卡一| 免费一级黄色大片| 欧美日韩精品欧美日韩精品| 日韩一级片免费看| www.xxxx精品| 免费观看亚洲| 99re国产在线播放| 亚洲欧洲免费| 人人妻人人添人人爽欧美一区| 国产综合久久久久久鬼色 | 91精品国产全国免费观看 | 日韩免费一区二区| 国产美女视频一区二区三区| 欧美精品video| 国产aa精品| 国产不卡一区二区在线观看 | 亚洲精华液一区二区三区| 亚洲a级在线观看| 欧美日韩一二三四| 99精品在线免费视频| 国产精品羞羞答答xxdd| 俄罗斯毛片基地| 一本到不卡精品视频在线观看| www.精品久久| 免费91在线视频| 91麻豆精品| 99中文视频在线| 亚洲视频电影在线| 伊人影院综合在线| 久久久精品国产免费观看同学| 久久精品视频8| 少妇搡bbbb搡bbb搡打电话| 三级精品视频| 欧美日韩一区二区三区电影| 性欧美xxxx大乳国产app| 无码内射中文字幕岛国片| 久久―日本道色综合久久| 国产无遮挡免费视频| 日韩天堂在线观看| 黄色av电影在线观看| 国产精品一区二区三区免费视频| 国内精品视频在线观看| 看av免费毛片手机播放| 国产精品一级黄| 老熟妇高潮一区二区三区| 欧美日韩国产成人在线91| 欧美女子与性| 91精品国产91久久久久久久久| 99国产精品免费网站| 国产成人一区二区三区别| 国产成人av一区二区| 欧美色图亚洲天堂| 日韩美女主播在线视频一区二区三区 | 久久久亚洲精品石原莉奈| 69夜色精品国产69乱| 欧美另类久久久品| 成码无人av片在线观看网站| 91成人免费在线观看| 99这里有精品| 最近中文字幕免费视频| 欧美在线观看视频在线| 在线激情免费视频| 国产成人午夜视频网址| 欧美一区电影| 午夜免费高清视频| 国产精品久久久久影视| 国产欧美综合视频 | 欧美在线视频一区二区| 亚洲va久久久噜噜噜久久| 欧美日韩大尺度| 欧美极品另类videosde| 中文字幕久久久久| 操人视频在线观看欧美| 澳门久久精品| 国语对白做受xxxxx在线中国 | 久久久久久国产精品三级玉女聊斋| 91精品日本| 免费无码国产v片在线观看| 久久五月婷婷丁香社区| 亚洲熟妇无码久久精品| 久久国产精品99国产精| 青青一区二区| 向日葵污视频在线观看| 亚洲国产精品久久艾草纯爱|