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

同為分布式緩存,為何Redis更勝一籌?

開發 前端 其他數據庫 分布式 Redis
如今,市面上的緩存解決方案已經逐步成熟了,今天我將選取其中一些代表性的方案包括Redis、Memcached和Tair進行對比,幫助大家在生產實踐中更好地進行技術選型。

本文節選自即將出版的《可伸縮服務架構:框架與中間件》一書,作者:李艷鵬、楊彪、李海亮、賈博巖、劉淏

如今,市面上的緩存解決方案已經逐步成熟了,今天我將選取其中一些代表性的方案包括Redis、Memcached和Tair進行對比,幫助大家在生產實踐中更好地進行技術選型。

一、常用的分布式緩存的對比

常用的分布式緩存包括Redis、Memcached和阿里巴巴的Tair(見下表),因為Redis提供的數據結構比較豐富且簡單易用,所以Redis的使用廣泛。

 

下面我們從9個大方面來對比最常用的Redis和Memcached。

1.數據類型

Redis一共支持5種數據類型,每種數據類型對應不同的數據結構,有簡單的String類型、壓縮串、字典、跳躍表等。跳躍表是比較新型的數據結構,常用于高性能的查找,可以達到log2N的查詢速度,而且跳躍表相對于紅黑樹,在更新時變更的節點較少,更易于實現并發操作。

Memcache只支持對鍵值對的存儲,并不支持其它數據結構。

2.線程模型

Redis使用單線程實現,Memcache等使用多線程實現,因此我們不推薦在Redis中存儲太大的內容,否則會阻塞其它請求。

因為緩存操作都是內存操作,只有很少的計算操作,所以在單線程下性能很好。Redis實現的單線程的非阻塞網絡I/O模型,適合快速地操作邏輯,有復雜的長邏輯時會影響性能。對于長邏輯應該配置多個實例來提高多核CPU的利用率,也就是說,可以使用單機器多端口來配置多個實例,官方的推薦是一臺機器使用8個實例。

它實現的非阻塞I/O模型基于Libevent庫中關于Epoll的兩個文件加上自己簡單實現的事件通知模型,簡單小巧,作者的思想就是保持實現簡單、減少依賴。由于在服務器中只有一個線程,因此提供了管道來合并請求和批量執行,縮短了通信消耗的時間。

Memcache也使用了非阻塞I/O模型,但是使用了多線程,可以應用于多種場景,請求的邏輯可大可小、可長可短,不會出現一個邏輯復雜的請求阻塞對其它請求的響應的場景。它直接依賴Libevent庫實現,依賴比較復雜,損失了在一些特定環境下的高性能。

3.持久機制

Redis提供了兩種持久機制,包括RDB和AOF,前者是定時的持久機制,但在出現宕機時可能會出現數據丟失,后者是基于操作日志的持久機制。

Memcahe并不提供持久機制,因為Memache的設計理念就是設計一個單純的緩存,緩存的數據都是臨時的,不應該是持久的,也不應該是一個大數據的數據庫,緩存未***時回源查詢數據庫是天經地義的,但可以通過第三方庫MemcacheDB來支持它的持久性。

4.客戶端

常見的Redis Java客戶端Jedis使用阻塞I/O,但可以配置連接池,并提供了一致性哈希分片的邏輯,也可以使用開源的客戶端分片框架Redic。

Memecache的客戶端包括Memcache Java Client、Spy Client、XMemcache等,Memcache Java Client使用阻塞I/O,而Spy Client/XMemcache使用非阻塞I/O。

我們知道,阻塞I/O不需要額外的線程,非阻塞I/O會開啟額外的請求線程(在Boss線程池里)監聽端口,一個請求在處理后就釋放工作者線程(在Worker線程池中),請求線程在監聽到有返回結果時,一旦有I/O返回結果就被喚醒,然后開始處理響應數據并寫回網絡Socket連接,所以從理論上來講,非阻塞I/O的吞吐量和響應能力會更高。

5.高可用

Redis支持主從節點復制配置,從節點可使用RDB和緩存的AOF命令進行同步和恢復。Redis還支持Sentinel和Cluster(從3.0版本開始)等高可用集群方案。

Memecache不支持高可用模型,可使用第三方Megagent代理,當一個實例宕機時,可以連接另外一個實例來實現。

6.對隊列的支持

Redis本身支持lpush/brpop、publish/subscribe/psubscribe等隊列和訂閱模式。

Memcache不支持隊列,可通過第三方MemcachQ來實現。

7.事務

Redis提供了一些在一定程度上支持線程安全和事務的命令,例如:multi/exec、watch、inc等。由于Redis服務器是單線程的,任何單一請求的服務器操作命令都是原子的,但跨客戶端的操作并不保證原子性,所以對于同一個連接的多個操作序列也不保證事務。

Memcached的單個命令也是線程安全的,單個連接的多個命令序列不是線程安全的,它也提供了inc等線程安全的自加命令,并提供了gets/cas保證線程安全。

8.數據淘汰策略

Redis提供了豐富的淘汰策略,包括maxmemory、maxmemory-policy、volatile-lru、allkeys-lru、volatile-random、allkeys-random、volatile-ttl、noeviction(return error)等。

Memecache在容量達到指定值后,就基于LRU(Least Recently Used)算法自動刪除不使用的緩存。在某些情況下LRU機制反倒會帶來麻煩,會將不期待的數據從內存中清除,在這種情況下啟動Memcache時,可以通過“M”參數禁止LRU算法。

9.內存分配

Redis為了屏蔽不同平臺之間的差異及統計內存占用量等,對內存分配函數進行了一層封裝,在程序中統一使用zmalloc、zfree系列函數,這些函數位于zmalloc.h/zmalloc.c文件中。封裝就是為了屏蔽底層平臺的差異,同時方便自己實現相關的統計函數。具體的實現方式如下:

  • 若系統中存在Google的TC_MALLOC庫,則使用tc_malloc一族的函數代替原本的malloc一族的函數。
  • 若當前系統是Mac系統,則使用系統的內存分配函數。
  • 對于其它情況,在每一段分配好的空間前面同時多分配一個定長的字段,用來記錄分配的空間大小,通過這種方式來實現簡單有效的內存分配。

Memcache采用slab table的方式分配內存,首先把可得的內存按照不同的大小來分類,在使用時根據需求找到最接近于需求大小的塊分配,來減少內存碎片,但是這需要進行合理配置才能達到效果。

從上面的對比可以看到,Redis在實現和使用上更簡單,但是功能更強大,效率更高,應用也更廣泛。下面將對Redis進行初步介紹,給初學者一個初體驗式的學習引導。

二、Redis初體驗

Redis是一個能夠存儲多種數據對象的開源Key-Value存儲系統,使用ANSI C語言編寫,可以僅僅當作內存數據庫使用,也可以作為以日志為存儲方式的數據庫系統,并提供多種語言的API。

1.使用場景

我們通常把Redis當作一個非本地緩存來使用,很少用到它的一些高級功能。在使用中最容易出問題的是用Redis來保存JSON數據,因為Redis不像Elasticsearch或者PostgreSQL那樣可以很好地支持JSON數據。所以我們經常把JSON當作一個大的String直接放到Redis中,但現在的JSON數據都是連環嵌套的,每次更新時都要先獲取整個JSON,然后更改其中一個字段再放上去。

一個常見的JSON數據的Java對象定義如下:

 

  1. public class Commodity {  
  2. private long price;  
  3. private String title;  
  4. ……  

在海量請求的前提下,在Redis中每次更新一個字段,比如銷量字段,都會產生較大的流量。在實際情況下,JSON字符串往往非常復雜,體積達到數百KB都是有可能的,導致在頻繁更新數據時使網絡I/O跑滿,甚至導致系統超時、崩潰。

因此,Redis官方推薦采用哈希來保存對象,比如有3個商品對象,ID分別是123、124和12345,我們通過哈希把它們保存在Redis中,在更新其中的字段時可以這樣做:

 

  1. HSET commodity:123 price 100  
  2. HSET commodity:124 price 101  
  3. HSET commodity:12345 price 101  
  4.  
  5. HSET commodity:123 title banana  
  6. HSET commodity:124 title apple  
  7. HSET commodity:12345 title orange 

也就是說,用商品的類型名和ID組成一個Redis哈希對象的KEY。在獲取某一屬性時只需這樣做就可以獲取單獨的屬性:HGET commodity: 12345。

2.Redis的高可用方案:哨兵

Redis官方推出了一個集群管理工具,叫作哨兵(Sentinel),負責在節點中選出主節點,按照分布式集群的管理辦法來操作集群節點的上線、下線、監控、提醒、自動故障切換(主備切換),且實現了著名的RAFT選主協議,從而保證了系統選主的一致性。

這里給出一個哨兵的通用部署方案。哨兵節點一般至少要部署3份,可以和被監控的節點放在一個虛擬機中,常見的哨兵部署如圖所示。

 

在這個系統中,初始狀態下的機器A是主節點,機器B和機器C是從節點。

由于有3個哨兵節點,每個機器運行1個哨兵節點,所以這里設置quorum = 2,也就是在主節點無響應后,有至少兩個哨兵無法與主節點通信,則認為主節點宕機,然后在從節點中選舉新的主節點來使用。

在發生網絡分區時,若機器A所在的主機網絡不可用,則機器B和機器C上的兩個Sentinel實例會啟動failover并把機器B選舉為主節點。

Sentinel集群的特性保證了機器B和機器C上的兩個Sentinel實例得到了關于主節點的***配置。但機器A上的Sentinel節點依然持有舊的配置,因為它與外界隔離了。

在網絡恢復后,我們知道機器A上的Sentinel實例將會更新它的配置。但是,如果客戶端所連接的主機節點也被網絡隔離,則客戶端將依然可以向機器A的Redis節點寫數據,但在網絡恢復后,機器A的Redis節點就會變成一個從節點,那么在網絡隔離期間,客戶端向機器A的Redis節點寫入的數據將會丟失,這是不可避免的。

如果把Redis當作緩存來使用,那么我們也許能容忍這部分數據的丟失,但若把Redis當作一個存儲系統來使用,就無法容忍這部分數據的丟失了,因為Redis采用的是異步復制,在這樣的場景下無法避免數據的丟失。

在這里,我們可以通過以下配置來配置每個Redis實例,使得數據不會丟失:

 

  1. min-slaves-to-write 1  
  2. min-slaves-max-lag 10 

通過上面的配置,當一個Redis是主節點時,如果它不能向至少一個從節點寫數據(上面的min-slaves-to-write指定了slave的數量),則它將會拒絕接收客戶端的寫請求。由于復制是異步的,所以主節點無法向從節點寫數據就意味著從節點要么斷開了連接,要么沒在指定的時間內向主節點發送同步數據的請求。

所以,采用這樣的配置可排除網絡分區后主節點被孤立但仍然寫入數據,從而導致數據丟失的場景。

3.Redis集群

Redis在3.0中也引入了集群的概念,用于解決一些大數據量和高可用的問題,但是,為了達到高性能的目的,集群不是強一致性的,使用的是異步復制,在數據到主節點后,主節點返回成功,數據被異步地復制給從節點。

首先,我們來學習Redis的集群分片機制。Redis使用CRC16(key) mod 16384進行分片,一共分16384個哈希槽,比如若集群有3個節點,則我們按照如下規則分配哈希槽:

  • A節點包含0-5500的哈希槽;
  • B節點包含5500-11000的哈希槽;
  • C節點包含11000-16384的哈希槽。

這里設置了3個主節點和3個從節點,集群分片如圖所示。

 

圖中共有3個Redis主從服務器的復制節點,其中任意兩個節點之間都是相互連通的,客戶端可以與其中任意一個節點相連接,然后訪問集群中的任意一個節點,對其進行存取和其他操作。

那Redis是怎么做到的呢?首先,在Redis的每個節點上都會存儲哈希槽信息,我們可以將它理解為是一個可以存儲兩個數值的變量,這個變量的取值范圍是0-16383。根據這些信息,我們就可以找到每個節點負責的哈希槽,進而找到數據所在的節點。

Redis集群實際上是一個集群管理的插件,當我們提供一個存取的關鍵字時,就會根據CRC16的算法得出一個結果,然后把結果除以16384求余數,這樣每個關鍵字都會對應一個編號為0-16383的哈希槽,通過這個值找到對應的插槽所對應的節點,然后直接自動跳轉到這個對應的節點上進行存取操作。但是這些都是由集群的內部機制實現的,我們不需要手工實現。

作者介紹

楊彪,螞蟻金服技術專家,《分布式服務架構:原理、設計與實戰》和《可伸縮服務架構:框架與中間件》作者。近10年互聯網和游戲行業工作經驗,曾在酷我音樂盒、人人游戲和掌趣科技等上市公司擔任核心研發職位,做過日活躍用戶量達千萬的項目,也做過多款月流水千萬以上的游戲。

責任編輯:未麗燕 來源: DBAplus社群
相關推薦

2024-07-31 09:39:33

2025-08-05 08:13:19

2020-04-29 16:17:37

分布式存儲產品

2010-05-28 11:21:17

2020-03-06 09:21:28

PWA原生應用Web

2022-07-20 08:16:54

Lombokjava工具

2018-06-12 10:09:41

編程語言PythonJava

2023-08-23 15:14:13

Web開發Javascript編程語言

2014-03-06 15:07:41

青橙小米

2012-11-14 09:44:20

apReduceHadoopCoronApache

2020-02-02 15:42:22

PythonC++編程語言

2022-08-24 08:00:00

Node.isJavaScriptDeno

2020-01-18 14:55:03

架構運維技術

2014-05-22 11:26:26

航班app體驗

2017-01-11 14:38:39

編程語言Java

2017-04-15 18:58:31

PythonRuby編程語言

2023-08-09 18:08:35

ChatGPTStackOverflow

2017-11-13 15:38:03

VMwareOpenStack混合云

2018-10-12 13:54:26

2019-01-04 09:59:14

KafkaRabbitMQMQ
點贊
收藏

51CTO技術棧公眾號

懂色av一区二区三区免费看| 天天射天天综合网| 色偷偷久久一区二区三区| 欧美午夜精品久久久久免费视 | 国产精品久久久久久久一区探花| 调教驯服丰满美艳麻麻在线视频| www.久久草.com| 精品国产老师黑色丝袜高跟鞋| 日韩电影免费观看高清完整| av网站免费大全| 久久国产主播| 欧美裸体xxxx极品少妇| 久久久久久九九九九九| 视频一区中文字幕精品| 欧美私人免费视频| 成年人视频观看| 自由的xxxx在线视频| 久久久精品国产免大香伊| 97影院在线午夜| 在线观看亚洲黄色| 亚洲黄色三级| 欧美成人手机在线| www.日本高清视频| 亚洲瘦老头同性70tv| 日韩免费福利电影在线观看| 手机看片一级片| 免费电影日韩网站| 亚洲国产成人tv| aaa免费在线观看| 国产精品久久久久久久龚玥菲 | 97碰碰视频| 在线观看xxxx| 日本中文字幕一区二区视频| 2019最新中文字幕| 日韩精品视频免费看| 韩日在线一区| 欧美第一淫aaasss性| 麻豆网址在线观看| 热久久天天拍国产| 伊人青青综合网站| 久操视频在线观看免费| 精品一区三区| 亚洲欧洲午夜一线一品| 蜜桃精品一区二区| 日韩成人av在线资源| 亚洲激情 国产| 2一3sex性hd| 波多野结衣欧美| 精品国产伦一区二区三区观看方式| xxxx在线免费观看| 电影一区二区三区久久免费观看| 欧美日韩国产高清一区二区三区| 午夜免费看视频| 亚洲一区二区小说| 91精品啪在线观看国产60岁| 99精品视频国产| 日韩一区网站| 亚洲国产成人久久| 五月婷婷综合在线观看| 亚洲专区视频| 亚洲午夜久久久久久久| 毛片aaaaaa| 久久久久国产| 欧美高清电影在线看| 久久香蕉精品视频| 亚洲尤物在线| 国产精品吹潮在线观看| 亚洲午夜在线播放| 国产在线日韩欧美| 超碰97人人人人人蜜桃| 无码国产精品一区二区色情男同| 99re成人精品视频| 视频一区二区综合| 伦xxxx在线| 综合网在线视频| 久久久国内精品| 欧美另类老肥妇| 欧美图区在线视频| 性久久久久久久久久久久久久| 伊人久久噜噜噜躁狠狠躁| 日韩电影大片中文字幕| 天天操天天干天天操天天干| 亚洲精品小说| 91av中文字幕| 在线播放亚洲精品| 不卡一区二区中文字幕| 日本一区二区久久精品| 国产原创在线观看| 欧美日韩另类字幕中文| 亚洲视频第二页| 都市激情亚洲欧美| 一个人看的www久久| 99精品久久久久| 免费在线亚洲欧美| 91精品免费视频| 婷婷色在线视频| 国产精品美女一区二区在线观看| www.夜夜爱| 666av成人影院在线观看| 欧美日韩电影在线| 国产精品无码电影| 国产精品传媒精东影业在线| 欧美一级片在线播放| 国产精品乱码一区二区| www国产精品av| 欧美 国产 精品| 欧美日韩电影免费看| 欧美xxxx老人做受| 国产精品1区2区3区4区| 国产日产高清欧美一区二区三区| 成人美女av在线直播| 天堂网www中文在线| 亚洲同性gay激情无套| 成年人免费在线播放| 6080成人| 免费av一区二区| 这里只有精品免费视频| 99热在这里有精品免费| 国产一级大片免费看| 日韩成人在线电影| 国产亚洲aⅴaaaaaa毛片| 国产真实夫妇交换视频| 国产一区二区在线影院| 婷婷四房综合激情五月| 黄色亚洲网站| 亚洲另类激情图| 国产中文字字幕乱码无限| 国产在线日韩欧美| 永久久久久久| 久久爱.com| 中文字幕在线观看亚洲| 69亚洲精品久久久蜜桃小说| 91一区二区三区在线观看| 18禁裸男晨勃露j毛免费观看| 91精品国产色综合久久不卡粉嫩| 在线视频精品一| 日本视频免费观看| 久久新电视剧免费观看| 91精品国产91久久久久麻豆 主演| 国产精品亚洲综合在线观看| 精品国产一区二区三区久久久狼| 超碰在线观看91| 久久婷婷色综合| 99精品人妻少妇一区二区| 狼人精品一区二区三区在线| 久久久久久久久久亚洲| 黄色a在线观看| 亚洲高清免费观看 | 国产欧美一区二区三区在线看蜜臀| 日韩免费视频播放| 女同另类激情重口| 国产91精品高潮白浆喷水| 无码精品视频一区二区三区 | 国产美女www爽爽爽视频| 国产精品九色蝌蚪自拍| 在线观看日本www| 欧美日韩一视频区二区| 97视频资源在线观看| av资源在线看片| 亚洲国产精彩中文乱码av在线播放| 日本三级欧美三级| 91视频免费播放| 男人舔女人下面高潮视频| 教室别恋欧美无删减版| 国产精品视频在线播放| 日本成人网址| 精品国产乱码久久久久久1区2区| 四虎永久在线精品| 26uuu欧美| 中文字幕视频在线免费观看| 午夜精品一区二区三区国产| 国产成人看片| 国产精品av一区二区三区 | 亚洲七七久久综合桃花剧情介绍| 欧美一区二区三区性视频| 久草免费在线观看视频| 91免费精品国自产拍在线不卡| 日韩中文字幕组| 99久久婷婷| 国内精品**久久毛片app| 性欧美videohd高精| 日韩视频在线免费| 日本高清视频www| 欧美在线|欧美| 免费又黄又爽又色的视频| 91性感美女视频| 亚洲 国产 图片| 亚洲精品男同| 天天久久人人| 99国产精品免费网站| 国产成人精品av在线| av免费在线网站| 日韩成人免费视频| 国产精品一级视频| 婷婷国产v国产偷v亚洲高清| 天堂网av2018| 99精品桃花视频在线观看| 日日干日日操日日射| 亚洲在线网站| 国产一区 在线播放| 国产在线观看91一区二区三区| 99在线观看视频网站| 99精品国自产在线| 午夜美女久久久久爽久久| 三级外国片在线观看视频| 亚洲国产成人精品女人久久久| 亚洲视频在线观看一区二区| 红桃av永久久久| 欧美丰满艳妇bbwbbw| 国产欧美精品区一区二区三区| 佐佐木明希电影| 六月丁香综合在线视频| 漂亮人妻被中出中文字幕| 欧美激情亚洲| 中文字幕欧美人与畜| 国产亚洲第一伦理第一区| 国产精品香蕉视屏| 欧美片网站免费| 国产狼人综合免费视频| 成人在线爆射| 日本国产一区二区三区| av资源一区| 欧美黑人又粗大| av在线看片| 久久视频在线播放| 日本中文在线| 国产亚洲成av人片在线观看桃| 欧美自拍偷拍一区二区| 日韩欧美美女一区二区三区| 136福利视频导航| 欧美性极品少妇| 日韩国产成人在线| 色偷偷成人一区二区三区91 | 欧美精品一二三四| 最近中文字幕免费在线观看| 色综合视频在线观看| 日韩精品视频免费播放| 亚洲大片免费看| 国产午夜久久久| 亚洲国产成人porn| 日本少妇裸体做爰| 香蕉影视欧美成人| 日本中文字幕在线免费观看| 亚洲一二三区不卡| 日本熟妇成熟毛茸茸| 亚洲国产综合人成综合网站| 国产无遮挡又黄又爽| 亚洲超丰满肉感bbw| 日产精品久久久久| 欧美日韩亚洲一区二| 国产www在线| 91福利在线播放| 一区二区视频网站| 在线91免费看| www.黄色一片| 亚洲大尺度美女在线| 三级毛片在线免费看| 国产一区二区日韩精品欧美精品| 成人动漫在线播放| 久久精品国产成人| 四季久久免费一区二区三区四区| 欧美激情一区二区三区久久久 | 国产精品揄拍100视频| 久久综合九色综合欧美就去吻| 美女被到爽高潮视频| 亚洲欧洲韩国日本视频| 青青草手机视频在线观看| 亚洲h动漫在线| 亚洲 欧美 日韩 在线| 欧美日韩精品久久久| 99国产成人精品| 亚洲第一福利视频| 免费在线一级视频| 日韩少妇与小伙激情| 国产羞羞视频在线播放| 欧美自拍视频在线观看| 日韩av懂色| 国产精品果冻传媒潘| 亚洲区小说区| 亚洲一区二区三区在线观看视频| 综合久久婷婷| 国产aaa一级片| 韩国一区二区视频| 玖玖爱在线精品视频| 国产精品久久久久永久免费观看 | 51午夜精品| 色婷婷av一区二区三区丝袜美腿| 亚洲国产日韩美| 一区福利视频| jizz大全欧美jizzcom| 成人性生交大片| 久久亚洲无码视频| 亚洲一区二区在线免费看| 亚洲色成人www永久网站| 日韩欧美国产高清| 成人三级黄色免费网站| 欧美大荫蒂xxx| 日韩免费在线电影| 久久久com| 亚洲男女av一区二区| 妞干网在线免费视频| 国产**成人网毛片九色| 山东少妇露脸刺激对白在线| 亚洲国产一区二区a毛片| 亚洲综合精品国产一区二区三区 | 91精品办公室少妇高潮对白| a级片免费视频| 中文字幕免费精品一区高清| 国产精品小仙女| 日韩高清一二三区| 亚洲国产成人自拍| av大片在线免费观看| 欧美成人激情免费网| av在线女优影院| 国产91|九色| 爱爱精品视频| 亚洲精品偷拍视频| 视频一区二区欧美| 日韩aaaaa| 亚洲线精品一区二区三区八戒| 88av在线视频| 国产一区二区三区四区福利| 九色porny自拍视频在线播放| 91观看网站| 久久亚洲影视| 草草草在线视频| 91麻豆文化传媒在线观看| 五月天婷婷丁香| 日韩欧美国产高清| 在线中文字幕电影| 91久久久久久| 国产精品伦理久久久久久| 成年网站在线播放| 亚洲国产成人一区二区三区| 国产又粗又猛又爽又| 有码中文亚洲精品| 国产成人精品一区二区三区免费 | 久久不见久久见国语| 一区二区传媒有限公司| 成人午夜视频免费看| 久久久一二三区| 日韩精品中文字幕一区二区三区 | 69xxxx欧美| 国产精品视频午夜| 日韩精品2区| 久久人人爽av| 亚洲人成亚洲人成在线观看图片| 一级黄色a毛片| www亚洲精品| 国色天香久久精品国产一区| 波多野结衣三级在线| 国产美女娇喘av呻吟久久| 一级黄色录像视频| 精品99久久久久久| 最新日韩精品| 日韩av影视| 久久福利资源站| 欧美日韩免费一区二区| 精品国产不卡一区二区三区| av剧情在线观看| 欧美在线视频二区| 久久99久久精品| 久久伊人成人网| 亚洲男人天天操| 国产91欧美| 男女啪啪免费观看| 99re亚洲国产精品| 中国女人一级一次看片| 久久亚洲精品视频| 97品白浆高清久久久久久| 欧美日韩二三区| 国产欧美视频一区二区三区| 国产精品久久免费| 91极品视频在线| 日韩久久久久| 男人女人拔萝卜视频| 精品日韩视频在线观看| av网页在线| 操人视频欧美| 三级欧美在线一区| 午夜激情福利网| 亚洲精品福利免费在线观看| 黄色精品视频| 妞干网视频在线观看| 国产日韩精品一区| 国产高中女学生第一次| 91av在线看| 自拍欧美日韩| 91国模少妇一区二区三区| 91精品国产综合久久福利| 黑森林国产精品av| 在线无限看免费粉色视频| 99久久国产综合色|国产精品| 久久久久久久亚洲| 欧美激情一区二区三区久久久| 精品美女在线视频| 国产精品久久久久久亚洲av| 欧美日韩国产不卡| 成人私拍视频| 少妇大叫太大太粗太爽了a片小说|