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

Redis 這么火,它都解決了哪些問題?

存儲(chǔ) 存儲(chǔ)軟件 Redis
Redis是一個(gè)基于BSD開源的項(xiàng)目,是一個(gè)把結(jié)構(gòu)化的數(shù)據(jù)放在內(nèi)存中的一個(gè)存儲(chǔ)系統(tǒng),你可以把它作為數(shù)據(jù)庫,緩存和消息中間件來使用。

 [[261796]]

先看一下Redis是一個(gè)什么東西。官方簡(jiǎn)介解釋到:

Redis是一個(gè)基于BSD開源的項(xiàng)目,是一個(gè)把結(jié)構(gòu)化的數(shù)據(jù)放在內(nèi)存中的一個(gè)存儲(chǔ)系統(tǒng),你可以把它作為數(shù)據(jù)庫,緩存和消息中間件來使用。同時(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提供了豐富的功能,初次見到可能會(huì)感覺眼花繚亂,這些功能都是干嘛用的?都解決了什么問題?什么情況下才會(huì)用到相應(yīng)的功能?那么下面從零開始,一步一步的演進(jìn)來粗略的解釋下。

1.從0開始

最初的需求非常簡(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ù)庫的壓力還是一下子就上來了。

所以這個(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)行重定向處理。在Java技術(shù)棧微信公眾號(hào)后臺(tái)回復(fù)關(guān)鍵字:Redis,可以獲取更多棧長(zhǎng)整理的 Redis 技術(shù)干貨。

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 

總結(jié)

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

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

參考

  • Redis 文檔:https://github.com/antirez/redis-doc
  • Redis 簡(jiǎn)介:https://redis.io/topics/introduction
  • Redis 持久化(Persistence):https://redis.io/topics/persistence
  • Redis 發(fā)布/訂閱(Pub/Sub):https://redis.io/topics/pubsub
  • Redis 哨兵(Sentinel):https://redis.io/topics/sentinel
  • Redis 復(fù)制(Replication):https://redis.io/topics/replication
  • Redis 集群(cluster):https://redis.io/topics/cluster-tutorial
  • RedIs 事務(wù)(Transaction):https://redis.io/topics/transactions
  • Redis 數(shù)據(jù)類型(data types):https://redis.io/topics/data-types-intro
  • Redis 分布式鎖:https://redis.io/topics/distlock
  • Redis 管道(pipelining ):https://redis.io/topics/pipelining
  • Redis Lua Script:https://redis.io/commands/eval
責(zé)任編輯:武曉燕 來源: 博客園
相關(guān)推薦

2020-11-02 13:25:45

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

2019-05-07 18:17:26

Redis服務(wù)器數(shù)據(jù)

2018-10-19 11:55:36

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

2014-10-10 13:46:33

Docker

2022-02-19 22:02:21

Redisvalue元素

2021-01-19 15:12:16

AI

2018-11-06 21:30:44

jQuery前端API

2023-05-31 07:32:37

2024-03-01 17:01:15

GraphQL后端

2023-10-08 07:15:54

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

2013-03-04 10:10:36

WebKit瀏覽器

2024-12-09 09:30:00

適配器模式設(shè)計(jì)模式代碼

2018-03-15 15:51:40

戴爾

2019-10-23 09:00:06

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

2024-03-07 10:21:56

2022-04-08 10:15:29

VueReacHooks

2025-01-10 09:13:36

2010-10-17 13:42:28

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

2024-01-10 17:04:13

通信模塊通信技術(shù)通信模組
點(diǎn)贊
收藏

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

国产偷人妻精品一区| 日韩福利视频| 偷偷操不一样的久久| 国内精品久久久久久久久电影网| 欧美无人高清视频在线观看| 成人国产一区二区三区| 欧美视频综合| 国产精品538一区二区在线| 97视频在线观看亚洲| 美国美女黄色片| 大桥未久女教师av一区二区| 欧美私模裸体表演在线观看| 久久亚洲精品无码va白人极品| 麻豆av电影在线观看| 国产馆精品极品| 国产精品美女久久| 中文字幕一区二区三区精品| 91精品蜜臀一区二区三区在线| 精品香蕉一区二区三区| 精品国产午夜福利在线观看| 91看片一区| 精品人伦一区二区三区蜜桃免费| 三级网在线观看| 国产视频二区在线观看| 成人av网站免费| 亚洲曰本av电影| 在线观看毛片网站| 久久午夜影视| 91国内揄拍国内精品对白| 亚洲国产美女视频| 日本激情一区| 亚洲天堂视频在线观看| 中文字幕第九页| 精品视频在线一区| 欧美日韩精品系列| www.日日操| 9i看片成人免费高清| 亚洲成人在线观看视频| 日本黄xxxxxxxxx100| 欧美人xxx| 中文字幕精品一区二区精品绿巨人| 国产精品美女久久久久av福利| 国产精品毛片一区二区在线看舒淇| 日日夜夜免费精品视频| 秋霞av国产精品一区| 国产精品xxxx喷水欧美| 黄色在线一区| 国产+人+亚洲| 国产一级视频在线观看| 狠狠色丁香久久综合频道| 久久在线精品视频| 国产精品嫩草影院俄罗斯| 9999国产精品| 久久天天躁日日躁| 欧美日韩综合一区二区| 欧美日本不卡| 久久久久久久久久久成人| 黄色一级片在线| 国内自拍视频一区二区三区 | 久久久久久国产精品日本| yw.尤物在线精品视频| 91成人在线免费观看| 欧美激情精品久久久久久小说| 日韩pacopacomama| 欧美色爱综合网| 一级黄色片在线免费观看| 亚洲成av人片在线观看www| 欧美一区二区二区| 亚洲一二三四五| 色老板在线视频一区二区| 亚洲欧美日韩视频一区| 国产主播av在线| 91久久久精品国产| 欧美国产视频一区二区| 国产成人在线播放视频| 日韩精品亚洲专区| 成人国产在线视频| 国产成人三级在线观看视频| 97久久精品人人爽人人爽蜜臀| 欧美动漫一区二区| 欧美日本高清| 午夜精品在线看| 日本一区二区黄色| 亚洲成人毛片| 亚洲精品国产免费| 久久久久久久久久久久| 91一区二区| 性欧美激情精品| 这里只有精品免费视频| 国产伦精品一区二区三区免费| 国产亚洲欧美一区二区| av在线女优影院| 洋洋av久久久久久久一区| 黄www在线观看| 亚洲aⅴ网站| 亚洲欧美制服另类日韩| 黄视频网站免费看| 免费日韩av片| 5g国产欧美日韩视频| 黄色软件在线| 亚洲妇女屁股眼交7| 成人3d动漫一区二区三区| 看亚洲a级一级毛片| 国产丝袜视频一区| 妺妺窝人体色www婷婷| 日韩不卡一区二区三区| 国产福利久久精品| 暖暖日本在线观看| 日韩欧美在线国产| 9191在线视频| 四虎成人精品永久免费av九九| 97久久精品人人澡人人爽缅北| 91国内精品久久久| 久久久av毛片精品| 最新av网址在线观看| 国产a亚洲精品| 日韩精品黄色网| 久久视频免费看| 韩国v欧美v亚洲v日本v| 日韩精品国内| 玛雅亚洲电影| 亚洲国产免费av| 久久黄色免费视频| 国产在线精品一区在线观看麻豆| 日本在线观看一区| 中文字幕在线官网| 亚洲国产日韩欧美在线99| 农村妇女精品一区二区| 国内欧美视频一区二区| 视频在线观看成人| 日本久久免费| 亚洲三级 欧美三级| 日本中文字幕在线免费观看| 国产成人精品在线看| 99精品一级欧美片免费播放| 欧美高清xxx| 中文字幕在线国产精品| 国内av在线播放| 久久久久国产精品麻豆| 大肉大捧一进一出好爽视频| 久久精品国产亚洲5555| 欧美国产一区二区三区| 亚洲第一免费视频| 亚洲综合色在线| 极品白嫩的小少妇| 一区在线视频观看| 久久av二区| 天堂电影一区| 亚洲欧美国产一区二区三区| 久久99国产综合精品免费| 成人短视频下载| 日韩av高清在线看片| 久草在线综合| 5566日本婷婷色中文字幕97| 欧美一级特黄aaaaaa| 天天综合色天天| 日本aaa视频| 免费观看一级特黄欧美大片| 午夜精品一区二区在线观看 | 男女av一区三区二区色多| 老司机精品福利在线观看| 欧美第一视频| 中文字幕精品网| 国产乱码久久久久| 亚洲一二三四在线| aaaaa一级片| 免费国产亚洲视频| 日韩精品最新在线观看| 亚洲午夜剧场| 久久久久久久av| 青青青手机在线视频观看| 欧美亚洲丝袜传媒另类| www.99re6| 成人在线一区二区三区| 久久精品99国产| 国产精品久久久久9999赢消| 97自拍视频| 欧美成人h版| 久久精品成人动漫| 四虎在线免费看| 在线不卡免费av| 日韩精品视频免费播放| 国产精品毛片无遮挡高清| 亚洲精品久久久久久| 免费日韩av片| 蜜桃网站在线观看| 免费看成人吃奶视频在线| 成人春色激情网| 亚洲啊v在线| 欧美xxxx做受欧美.88| 天堂视频中文在线| 在线电影一区二区三区| www.中文字幕在线观看| 国产精品精品国产色婷婷| 亚洲精品国产成人av在线| 久久精品国产99| 欧美性大战久久久久xxx| 欧美~级网站不卡| 欧美色图亚洲自拍| 成人h动漫精品一区二区器材| 国产成一区二区| 高潮在线视频| 免费不卡在线观看av| 国产高清视频在线观看| 欧美精品一区二区三区很污很色的| 中文字幕免费高清在线观看| 午夜精品一区二区三区三上悠亚| 黑人狂躁日本娇小| 久久综合精品国产一区二区三区| 久久精品无码一区二区三区毛片| 久久亚洲欧美| 91视频 -- 69xx| 欧美日韩综合| 国产免费一区二区三区四在线播放| 天堂成人娱乐在线视频免费播放网站 | 免费无遮挡无码永久在线观看视频| 欧美激情一区二区三区蜜桃视频| 国产乱了高清露脸对白| 成人免费视频视频在线观看免费| 中文字幕第三区| 精品一区二区三区影院在线午夜| 欧美国产日韩在线播放| 亚洲欧美日韩国产一区| 国内少妇毛片视频| 亚洲区综合中文字幕日日| 亚洲国产精品日韩| 国产精品中文字幕亚洲欧美| 国产综合精品一区二区三区| 999精品视频在这里| 91久久精品国产| 国产一区2区在线观看| 国产日韩欧美一二三区| 91亚洲视频| 国产精品网站入口| 国产精品久久久久久久久免费高清 | 国产午夜精品全部视频在线播放| 日韩大胆人体| 国产视频在线观看一区二区| 五月色婷婷综合| 日韩精品黄色网| 国产乱视频在线观看| 亚洲色图25p| xxxxx日韩| 精品国产欧美一区二区三区成人| 日本福利在线| 两个人的视频www国产精品| 快射av在线播放一区| 久久久成人av| 日日夜夜天天综合入口| 欧美激情高清视频| 蜜桃视频在线观看免费视频| 欧美一级免费视频| 成人国产精品| 成人久久18免费网站图片| 精品久久免费| 精品无码久久久久久久动漫| 丝袜久久网站| 亚洲毛片aa| 欧美69视频| 自慰无码一区二区三区| 日日夜夜免费精品| 91国内在线播放| 成人一级片网址| 亚洲人人夜夜澡人人爽| 国产欧美日本一区视频| 久久国产高清视频| 亚洲不卡在线观看| 激情五月婷婷网| 69堂精品视频| 欧美一区二区三区黄片| 亚洲日本欧美日韩高观看| 一级日本在线| 性色av一区二区三区在线观看| 国产一区免费| 欧美日韩另类图片| 性欧美精品一区二区三区在线播放| 91亚洲国产| www国产精品内射老熟女| 日韩福利视频导航| 女人扒开双腿让男人捅| 91啪亚洲精品| 992在线观看| 午夜日韩在线观看| 中文字幕精品在线观看| 精品日韩成人av| 国产在线视频福利| 欧美激情18p| 日本中文字幕一区二区| av资源一区二区| 激情综合网五月| 欧美在线观看视频免费| 日韩精品91亚洲二区在线观看| 奇米777在线| 国产亚洲美州欧州综合国| 免费一级a毛片夜夜看| 在线观看日韩电影| 免费观看黄色av| 日日噜噜噜夜夜爽亚洲精品| av福利在线导航| 成人免费淫片视频软件| 偷拍精品福利视频导航| 欧洲精品视频在线| 久久午夜av| 亚洲男人在线天堂| 亚洲靠逼com| 中文天堂在线资源| 日韩av在线影院| 日本电影在线观看| 成人欧美一区二区三区在线湿哒哒| 亚州av日韩av| 日本阿v视频在线观看| 久久精品久久99精品久久| asian性开放少妇pics| 亚洲综合区在线| 国产女无套免费视频| 夜夜嗨av色一区二区不卡| 漫画在线观看av| 国产传媒一区二区三区| 亚洲精品99| 亚洲娇小娇小娇小| 亚洲国产高清不卡| 亚洲另类在线观看| 日韩成人av在线| 国产盗摄在线视频网站| 亚洲最大福利视频网站| 亚洲成人国产| 日韩av加勒比| 亚洲日本护士毛茸茸| 一级片aaaa| 日韩在线观看av| 国内自拍亚洲| 亚洲精品国产一区| 美腿丝袜在线亚洲一区| 美国一级黄色录像| 91福利在线看| 春暖花开成人亚洲区| 国产成人精品综合| jizzjizz欧美69巨大| 韩国日本美国免费毛片| 国产亚洲短视频| 天天干天天插天天射| 在线观看久久久久久| 91tv亚洲精品香蕉国产一区| 日本在线播放不卡| 日韩电影在线一区| av电影网站在线观看| 欧美性极品少妇| 老司机福利在线视频| 亚洲在线免费看| 亚洲国产第一| 日本黄色动态图| 一本大道综合伊人精品热热 | 日韩av一二三四区| 97久久久精品综合88久久| 一级黄色免费网站| 亚洲香蕉av在线一区二区三区| 巨胸喷奶水www久久久免费动漫| 日本一区二区视频| 久久99久久99| 免费中文字幕视频| 日韩av在线资源| 国产成人精品一区二区三区在线 | 黄色一级大片在线免费看产| 91亚洲精品视频| 亚洲国产午夜| 国产精品20p| 制服视频三区第一页精品| 国产一线二线在线观看| 另类小说综合网| 久久er精品视频| 国产精品 欧美 日韩| 日韩成人在线观看| 欧美一区=区三区| 999一区二区三区| 久久理论电影网| 国产又爽又黄免费软件| 久久久久久久久91| 国产欧美日韩精品高清二区综合区| 国产原创精品在线| 亚洲国产aⅴ成人精品无吗| 精品亚洲成a人片在线观看| 国产综合香蕉五月婷在线| 亚洲网站在线| 99久久99久久精品免费| 精品日韩一区二区三区| 992tv国产精品成人影院| 一卡二卡三卡视频| 国产欧美一区二区精品性色| www.天堂av.com| 国产成人一区二区| 国产精品黄色| 久久免费手机视频| 亚洲国产成人精品久久久国产成人一区 | 国产精品视频免费观看www| 欧美视频网站| 欧美另类69xxxx| 日韩精品有码在线观看| 疯狂欧洲av久久成人av电影 | 成人影院av| 91免费版看片|