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

如何保證MySQL和Redis的數據一致性?

原創
存儲 存儲軟件 MySQL 開發工具 Redis
今天給大家剖析一下工作中常見的 MySQL 和 Redis 數據一致性問題。

  [[440215]]

圖片來自 包圖網

【51CTO.com原創稿件】今天給大家剖析一下工作中常見的 MySQL 和 Redis 數據一致性問題。

什么是數據的一致性

一致性就是數據保持一致,在分布式系統中,可以理解為多個節點中數據的值是一致的。

而一致性又可以分為強一致性與弱一致性。強一致性可以理解為在任意時刻,所有節點中的數據是一樣的。

同一時間點,你在節點 A 中獲取到的值與在節點 B 中獲取到的值應該都是一樣的。

弱一致性包含很多種不同的實現,目前分布式系統中廣泛實現的是最終一致性。

所謂最終一致性,就是不保證在任意時刻任意節點上的同一份數據都是相同的,但是隨著時間的遷移,不同節點上的同一份數據總是在向趨同的方向變化。

也可以簡單的理解為在一段時間后,節點間的數據會最終達到一致狀態。

當下互聯網絕大部分公司都進行了數據庫拆分和服務化(SOA)微服務。在這種情況下,完成某一個業務功能可能需要橫跨多個服務,操作多個數據庫(包含關系型數據庫,非關系型數據庫)。

這就涉及到需要操作的資源位于多個資源服務器上,而應用需要保證對于多個資源服務器的數據的操作,要么全部成功,要么全部失敗,因此我們必須保證不同資源服務器的數據一致性。

那么數據一致性有哪些類型呢?我在這里給他做個具體的分類,讓大家實現數據一致性到底在什么場景下需要實現數據一致性。

①跨庫數據一致性

庫數據量比較大或者預期未來的數據量比較大,都會進行分庫分表存儲。那就意味著同一個表的數據可能存儲在不同庫中。此時也存儲分布式場景下數據一致性問題。

②微服務拆分

現在互聯網企業都使用微服務架構,服務被拆分成很多不同的相互獨立的系統,系統之間通過網絡進行通信,每一個服務都自己獨立的數據庫。

例如:某個應用同時操作了多個庫,這樣的應用業務邏輯必然非常復雜,對于開發人員是極大的挑戰,應該拆分成不同的獨立服務,以簡化業務邏輯。拆分后,獨立服務之間通過 RPC 框架來進行遠程調用,實現彼此的通信。

此時上圖所描述的架構中對應 2 個對應分布式事務處理點:

  • 多個服務之間事務處理(一個服務調用多個服務)
  • 多數據源事務處理(一個服務訪問多個數據源)

Service A 完成某個功能需要直接操作數據庫,同時需要調用 Service B 和 Service C,而 Service B 又同時操作了 2 個數據庫,Service C 也操作了一個庫。

需要保證這些跨服務的對多個數據庫的操作要不都成功,要不都失敗,實際上這可能是最典型的數據一致性場景。

③基于不同類型數據存儲

數據一致性另一個場景就是同時操作不同的種類的數據庫,但同時還需要滿足不同的數據庫的數據一致性問題。

緩存數據一致基本上是指:如果緩存中有數據,那么緩存的數據值等于數據庫中的值。

但是根據緩存中是有數據為依據,則”一致“可以包含以下的兩種情況:

  • 緩存中有數據,那么緩存的數據值等同于數據庫中的值(需均為最新值,本文將“舊值的一致”歸類為“不一致狀態”)。
  • 緩存中本沒有數據,那么數據庫中的值等同于最新值(有請求查詢數據庫時,會將數據寫入緩存,則變為上面的“一致”狀態)。

數據不一致:緩存的數據值不等同于數據庫中的值;緩存或者數據庫中存在舊值,導致其他線程讀到舊數據。

本文將會帶大家詳細了解一下緩存一致性如何實現,以及緩存一致性的原理是什么樣的。

數據不一致情況及應對策略

根據是否接收寫請求,可以把緩存分成讀寫緩存和只讀緩存:

  • 只讀緩存:只在緩存進行數據查找,即可以使用 “更新數據庫+刪除緩存” 策略。
  • 讀寫緩存:需要在緩存中對數據進行增刪改查,即可以使用 “更新數據庫+更新緩存”策略。

①針對只讀緩存

只讀緩存:新增數據時,直接寫入數據庫;更新(修改/刪除)數據時,先刪除緩存。

后續,訪問這些增刪改的數據時,會發生緩存缺失,進而查詢數據庫,更新緩存。

新增數據時,寫入數據庫;訪問數據時,緩存缺失,查數據庫,更新緩存(始終是處于”數據一致“的狀態,不會發生數據不一致性問題)。

更新(修改/刪除)數據時,會有個時序問題:更新數據庫與刪除緩存的順序(這個過程會發生數據不一致性問題)。

在更新數據的過程中,可能會有如下問題:

  • 無并發請求下,其中一個操作失敗的情況。
  • 并發請求下,其他線程可能會讀到舊值。

因此,要想達到數據一致性,需要保證兩點:

  • 無并發請求下,保證 a 和 b 步驟都能成功執行。
  • 并發請求下,在 a 和 b 步驟的間隔中,避免或消除其他線程的影響。

接下來,我們針對有/無并發場景,進行分析并使用不同的策略。

②無并發情況

無并發請求下,在更新數據庫和刪除緩存值的過程中,因為操作被拆分成兩步,那么就很有可能存在“步驟 1 成功,步驟 2 失敗” 的情況發生。

由于單線程中步驟 1 和步驟 2 是串行執行的,不太可能會發生 “步驟 2 成功,步驟 1 失敗” 的情況。

先刪除緩存,再更新數據庫:

先更新數據庫,再刪除緩存:

因此,如果先刪除緩存,后更新數據庫,那么刪除緩存成功,更新數據庫失敗,以致于請求無法命中緩存,讀取數據庫舊值,存在一致性問題。

如果先更新數據庫,后刪除緩存,那么更新數據庫成功,刪除緩存失敗,以致于請求命中緩存,讀取命中緩存舊值,也存在一致性問題

那么它的解決策略是什么呢?消息隊列+異步重試。

無論使用哪一種執行時序,可以在執行步驟 1 時,將步驟 2 的請求寫入消息隊列,當步驟 2 失敗時,就可以使用重試策略,對失敗操作進行 “補償”。

③高并發情況

使用以上策略后,可以保證在單線程/無并發場景下的數據一致性。但是,在高并發場景下,由于數據庫層面的讀寫并發,會引發的數據庫與緩存數據不一致的問題(本質是后發生的讀請求先返回了)。

(1) 先刪除緩存,再更新數據庫

假設線程 1 刪除緩存值后,由于網絡延遲等原因導致未及更新數據庫,而此時,線程 2 開始讀取數據時會發現緩存缺失,進而去查詢數據庫。

而當線程 2 從數據庫讀取完數據、更新了緩存后,線程 1 才開始更新數據庫,此時,會導致緩存中的數據是舊值,而數據庫中的是最新值,產生“數據不一致”。

其本質就是,本應后發生的“線程 2-讀請求” 先于 “線程 1-寫請求” 執行并返回了。

那么針對這種問題,我們的解決策略如下所示:

設置緩存過期時間 + 延時雙刪:通過設置緩存過期時間,若發生上述淘汰緩存失敗的情況,則在緩存過期后,讀請求仍然可以從 DB 中讀取最新數據并更新緩存,可減小數據不一致的影響范圍。雖然在一定時間范圍內數據有差異,但可以保證數據的最終一致性。

此外,還可以通過延時雙刪進行保障:在線程 1 更新完數據庫值以后,讓它先 sleep 一小段時間,確保線程 2 能夠先從數據庫讀取數據,再把缺失的數據寫入緩存,然后,線程 1 再進行刪除。

后續,其它線程讀取數據時,發現緩存缺失,會從數據庫中讀取最新值。

  1. redis.delKey(X) 
  2. db.update(X) 
  3. Thread.sleep(N) 
  4. redis.delKey(X) 

sleep 時間:在業務程序運行的時候,統計下線程讀數據和寫緩存的操作時間,以此為基礎來進行估算。

(2) 先更新數據庫,再刪除緩存

如果線程 1 更新了數據庫中的值,但還沒來得及刪除緩存值,線程 2 就開始讀取數據了,那么此時,線程 2 查詢緩存時,發現緩存命中,就會直接從緩存中讀取舊值。

其本質也是,本應后發生的“2 線程-讀請求” 先于 “1 線程-刪除緩存” 執行并返回了。

或者,在”先更新數據庫,再刪除緩存”方案下,“讀寫分離+主從庫延遲”也會導致不一致。

以上問題的解決方案如下所示:

延遲消息:憑借經驗發送「延遲消息」到隊列中,延遲刪除緩存,同時也要控制主從庫延遲,盡可能降低不一致發生的概率。

訂閱 binlog,異步刪除:通過數據庫的 binlog 來異步淘汰 key,利用工具(canal)將 binlog 日志采集發送到 MQ 中,然后通過 ACK 機制確認處理刪除緩存。

刪除消息寫入數據庫:通過比對數據庫中的數據,進行刪除確認 先更新數據庫再刪除緩存,有可能導致請求因緩存缺失而訪問數據庫,給數據庫帶來壓力,也就是緩存穿透的問題。針對緩存穿透問題,可以用緩存空結果、布隆過濾器進行解決。

加鎖:更新數據時,加寫鎖;查詢數據時,加讀鎖 保證兩步操作的“原子性”,使得操作可以串行執行。“原子性”的本質是什么?不可分割只是外在表現,其本質是多個資源間有一致性的要求,操作的中間狀態對外不可見。

建議,優先使用“先更新數據庫再刪除緩存”的執行時序,原因主要有兩個:

  • 先刪除緩存值再更新數據庫,有可能導致請求因緩存缺失而訪問數據庫,給數據庫帶來壓力。
  • 業務應用中讀取數據庫和寫緩存的時間有時不好估算,進而導致延遲雙刪中的 sleep 時間不好設置。

④針對讀寫緩存

讀寫緩存:增刪改在緩存中進行,并采取相應的回寫策略,同步數據到數據庫中

同步直寫:使用事務,保證緩存和數據更新的原子性,并進行失敗重試(如果 Redis 本身出現故障,會降低服務的性能和可用性)。

異步回寫:寫緩存時不同步寫數據庫,等到數據從緩存中淘汰時,再寫回數據庫(沒寫回數據庫前,緩存發生故障,會造成數據丟失) 該策略在秒殺場中有見到過,業務層直接對緩存中的秒殺商品庫存信息進行操作,一段時間后再回寫數據庫。

一致性:同步直寫>異步回寫,因此,對于讀寫緩存,要保持數據強一致性的主要思路是:利用同步直寫,同步直寫也存在兩個操作的時序問題:更新數據庫和更新緩存。

無并發情況:

高并發情況,有四種場景會造成數據不一致:

針對場景 1 和 2 的解決方案是:保存請求對緩存的讀取記錄,延時消息比較,發現不一致后,做業務補償。

針對場景 3 和 4 的解決方案是:對于寫請求,需要配合分布式鎖使用。

寫請求進來時,針對同一個資源的修改操作,先加分布式鎖,保證同一時間只有一個線程去更新數據庫和緩存;沒有拿到鎖的線程把操作放入到隊列中,延時處理。用這種方式保證多個線程操作同一資源的順序性,以此保證一致性。

其中,分布式鎖的實現可以使用以下策略:

  • 樂觀鎖:使用版本號、updatetime;緩存中只容許高版本覆蓋低版本。
  • Watch 實現 Redis 樂觀鎖:Watch 監控 Rediskey 的狀態值,創建 Redis 事務,key+1,執行事務,key 被修改過則回滾。
  • Setnx:獲取鎖:set/setnx;釋放鎖:del/lua。

Redisson 分布式鎖:利用 Redis 的 hash 結構作為儲存單元,將業務指定的名稱作為 key,將隨機 UUID 和線程 ID 作為 fleld,最后將加鎖的次數作為 value 來儲存,線程安全。

⑤強一致性策略

上述策略只能保證數據的最終一致性。要想做到強一致,最常見的方案是 2PC、3PC、Paxos、Raft 這類一致性協議,但它們的性能往往比較差,而且這些方案也比較復雜,還要考慮各種容錯問題。

如果業務層要求必須讀取數據的強一致性,可以采取以下策略:

暫存并發讀請求:在更新數據庫時,先在 Redis 緩存客戶端暫存并發讀請求,等數據庫更新完、緩存值刪除后,再讀取數據,從而保證數據一致性。

串行化:讀寫請求入隊列,工作線程從隊列中取任務來依次執行,修改服務 Service 連接池,id 取模選取服務連接,能夠保證同一個數據的讀寫都落在同一個后端服務上。

修改數據庫 DB 連接池,id 取模選取 DB 連接,能夠保證同一個數據的讀寫在數據庫層面是串行的。

使用 Redis 分布式讀寫鎖:將淘汰緩存與更新庫表放入同一把寫鎖中,與其他讀請求互斥,防止其間產生舊數據。

讀寫互斥、寫寫互斥、讀讀共享,可滿足讀多寫少的場景數據一致,也保證了并發性。并根據邏輯平均運行時間、響應超時時間來確定過期時間。

作者:JackHu

簡介:水滴健康基礎架構資深技術專家

編輯:陶家龍

征稿:有投稿、尋求報道意向技術人請聯絡 editor@51cto.com

【51CTO原創稿件,合作站點轉載請注明原文作者和出處為51CTO.com】

 

責任編輯:武曉燕 來源: 51CTO技術棧
相關推薦

2023-05-26 07:34:50

RedisMySQL緩存

2025-03-27 08:20:54

2024-08-20 16:13:52

2022-02-17 21:04:27

數據庫MysqlRedis

2024-12-26 15:01:29

2022-09-15 10:37:46

MySQLRedis數據一致性

2023-09-07 08:11:24

Redis管道機制

2021-10-14 10:00:46

MYSQL開發數據

2024-01-22 08:52:00

AQS雙異步數據一致性

2024-07-04 12:36:50

2023-09-24 14:35:43

Redis數據庫

2023-09-15 14:24:54

ByteHouseClickHouse開源

2025-04-27 08:52:21

Redis數據庫緩存

2018-08-14 10:39:04

數據錯誤DIX

2022-08-23 07:46:45

數據一致性數據庫

2023-06-29 08:00:59

redis數據MySQL

2019-08-30 12:46:10

并發扣款查詢SQL

2022-12-05 08:24:32

mongodb數據庫數據

2022-10-19 12:22:53

并發扣款一致性

2023-12-19 09:43:43

MongoDB并發
點贊
收藏

51CTO技術棧公眾號

美女爽到呻吟久久久久| 国产精品自在线拍| 亚洲免费观看高清在线观看| 国产精品99久久久久久久| 91看片在线播放| 日韩精品一区二区三区免费观看| 日韩精品一区二区三区在线播放 | 亚洲每日在线| 在线视频精品一| 免费a v网站| 国产精品日本一区二区三区在线 | 美女av免费在线观看| 精品国产白色丝袜高跟鞋| 99re视频这里只有精品| 国产专区精品视频| 无码人妻一区二区三区免费| 亚洲欧美伊人| 丝袜一区二区三区| 国产精品久久久免费观看| 国产日本亚洲| 欧美日韩一区二区在线观看 | 亚洲第一视频网| 国产乱码一区二区三区四区| jizz内谢中国亚洲jizz| 欧美男gay| 蜜乳av一区二区三区| 久久视频精品在线| 国产午夜精品福利视频| 日韩av三区| 精品国产麻豆免费人成网站| www.se五月| 天天综合网站| 色悠悠久久综合| www.av中文字幕| 亚洲h片在线看| 亚洲久草在线视频| 99热一区二区三区| 尤物网在线观看| 日本一区二区三区国色天香 | 国产精品欧美性爱| 国产欧美88| 67194成人在线观看| 污版视频在线观看| 欧美男女视频| 欧美三级电影网| 午夜免费福利在线| 青青草国产一区二区三区| 色94色欧美sute亚洲13| 青青草原av在线播放| 日本不卡网站| 色视频成人在线观看免| 日韩av一二三四| 美女写真久久影院| 欧美日韩在线三级| 一级做a免费视频| 国产 日韩 欧美| 欧美一区二区三区免费大片| 欧美激情第一区| 国产成年精品| 精品国产免费一区二区三区香蕉| 亚洲一二三四五| 牛牛影视久久网| 亚洲精品色婷婷福利天堂| 亚洲av无码一区二区二三区| 中文字幕中文字幕精品| 欧美国产成人精品| 国产亚洲视频在线| 欧美 日韩 成人| 97国产成人高清在线观看| 日韩视频免费大全中文字幕| 国产黄色片在线免费观看| 欧美视频官网| 热久久视久久精品18亚洲精品| 亚洲熟妇无码乱子av电影| 日韩精品亚洲专区| 91香蕉亚洲精品| 日韩一级免费视频| 国产日韩欧美综合一区| 强开小嫩苞一区二区三区网站 | 中文字幕一区二区av| 欧美理论片在线观看| 97超碰人人干| 久久草av在线| 精品久久久久久亚洲| 久蕉依人在线视频| 一区二区三区产品免费精品久久75| 亚洲国产精品成人天堂| 国精产品一区二区三区有限公司 | 日韩av久操| 欧美国产精品日韩| 艳妇乳肉豪妇荡乳av无码福利| 韩国v欧美v日本v亚洲v| 精品国产区在线| 午夜伦理在线| 精品久久久久久| 伊人色在线观看| 99国产精品欲| 国产成人手机高清在线观看网站| 色哟哟亚洲精品一区二区| 国产一级在线观看视频| 美洲天堂一区二卡三卡四卡视频| 风间由美久久久| 不卡在线视频| 天天操天天综合网| 亚洲黄色片免费看| 精品盗摄女厕tp美女嘘嘘| 美女啪啪无遮挡免费久久网站| 国产做受高潮漫动| 国产精品一二三| 亚洲精品乱码久久久久久蜜桃91| 欧美xxxx性xxxxx高清| 欧美三级视频在线| 中文字幕一区二区三区人妻电影| 欧美国产日本| 国产日韩欧美中文在线播放| 日韩国产福利| 亚洲第一主播视频| www.色.com| 久久精品国产亚洲夜色av网站| 777777777亚洲妇女| a视频免费在线观看| 日本一区二区三区视频视频| 精品这里只有精品| 高清乱码毛片入口| 999国产精品| 国产成人福利视频| 日本高清中文字幕二区在线| 亚洲一级二级在线| 2025中文字幕| 欧美一区在线看| 91久久久在线| 久久精品视频观看| 欧美日韩精品欧美日韩精品| 三级网站在线免费观看| 亚洲欧美日韩国产| 精品一区二区日本| 999av小视频在线| 精品福利一二区| 国产五月天婷婷| 懂色av中文字幕一区二区三区| 欧美另类videosbestsex日本| 99久久久国产| 欧美成人免费小视频| 国产成人精品a视频| 盗摄系列偷拍视频精品tp| 亚洲成人av片在线观看| 精品在线视频免费| 99久久久精品免费观看国产蜜| 亚洲色成人www永久在线观看 | 在线观看91精品国产麻豆| 亚洲国产精品一区二区久久hs| 奇米精品一区二区三区在线观看一| 日本在线成人一区二区| 成人在线黄色| www日韩中文字幕在线看| 国产视频手机在线| 亚洲影院在线观看| 亚洲综合自拍网| 久久国产直播| 亚洲草草视频| 视频免费一区二区| 孩xxxx性bbbb欧美| 日本中文字幕一区二区有码在线| 色综合久久综合中文综合网| 国产欧美一区二区三区在线观看视频| 免费观看日韩av| 亚洲黄色网址在线观看| 欧美wwwsss9999| 国产精品久久久久久久久| 青青青青在线| 欧美r级在线观看| 波多野结衣 久久| 亚洲天堂福利av| 国产一线在线观看| 老司机精品福利视频| 亚洲欧美日韩不卡一区二区三区| 免费精品一区二区三区在线观看| 性日韩欧美在线视频| yiren22亚洲综合伊人22| 欧美一区二区日韩一区二区| 精品成人久久久| 国产精品丝袜黑色高跟| 久久久久国产免费| 国产韩日精品| 亚洲伊人伊色伊影伊综合网 | 久久精品视频一区二区| 奇米视频7777| 99热精品在线观看| 特级毛片在线免费观看| 牛牛视频精品一区二区不卡| 国产精品久久久精品| 天堂av最新在线| 亚洲天堂免费在线| 亚洲成人精品女人久久久| 91福利视频网站| 中文在线观看免费网站| 中文字幕一区av| 在线观看日韩精品视频| 国产在线日韩欧美| 亚洲人成色77777| 国产精品hd| 一区二区精品视频| 网曝91综合精品门事件在线| 亚洲一区二区三区xxx视频| 日韩性xxx| 97国产在线视频| a级在线观看| 综合av色偷偷网| 邻家有女韩剧在线观看国语| 欧美成人精品福利| 一级特黄aaa大片| 91国在线观看| 99re在线视频观看| 成人区精品一区二区不卡| 亚洲新声在线观看| 天天干天天干天天干| 欧美一区二区免费观在线| 中国a一片一级一片| 午夜欧美一区二区三区在线播放| 人人干在线观看| 国产精品三级av| 精品人妻无码一区二区三区换脸| 成人福利电影精品一区二区在线观看| www.成年人| 蜜桃视频一区二区三区在线观看| 免费高清在线观看免费| 亚洲国产免费看| 久久综合亚洲精品| 88国产精品视频一区二区三区| 日本亚洲欧洲精品| 红桃成人av在线播放| 久久久精彩视频| 日韩超碰人人爽人人做人人添| 超碰国产精品久久国产精品99| 亚洲天堂网站| 91免费看国产| 成人自拍视频| 91精品国产一区二区三区动漫| 在线观看欧美| 91免费精品视频| 久久视频免费| 99久久伊人精品影院| 97久久超碰| 国产一级特黄a大片99| 精品福利一区| 美女被啪啪一区二区| 美女毛片一区二区三区四区| 欧美综合激情| 日韩国产欧美| 四虎精品欧美一区二区免费| 一级欧洲+日本+国产| 91精品国产毛片武则天| 欧美午夜不卡| 国产二级片在线观看| 老司机免费视频久久| 最新中文字幕2018| 精品一区二区三区的国产在线播放| 免费黄频在线观看| 福利一区在线观看| jizz日本免费| 国产精品午夜免费| 三上悠亚在线观看视频| 亚洲最新视频在线播放| www.毛片.com| 欧美日韩精品二区第二页| 国产又大又黄的视频| 欧美成人激情免费网| 亚洲av成人精品日韩在线播放| 欧美成人激情| 日本一区二区三区视频在线观看| 欧美视频网址| 欧美国产视频一区| 久久久www| 在线免费黄色小视频| 不卡的av网站| 日韩av毛片在线观看| 亚洲综合图片区| 国产中文字幕视频| 777xxx欧美| 欧美孕妇孕交xxⅹ孕妇交| 中文字幕v亚洲ⅴv天堂| 久久www人成免费看片中文| 日韩美女在线观看一区| 国产精品久久久久久久久久久久久久久 | 在线观看污视频| 在线亚洲精品| 亚洲精品20p| 91香蕉视频mp4| 欧洲美女女同性互添| 欧美日韩在线观看视频| 国产精品国产av| 日韩精品福利在线| 国产激情视频在线观看| 日本欧美精品在线| 99这里只有精品视频| 午夜欧美性电影| 国产日韩精品视频一区二区三区 | av手机免费看| 亚洲天堂网站在线观看视频| av超碰免费在线| 国产精品国产三级国产aⅴ9色| 一区二区日韩| 自拍偷拍99| 日本欧美一区二区在线观看| 久久精品aⅴ无码中文字字幕重口| 欧美国产精品中文字幕| 日本三级网站在线观看| 欧美日韩国产高清一区二区三区 | 日韩欧美一区二| 国产成人亚洲综合a∨婷婷图片| 日本乱子伦xxxx| 精品magnet| 丰满岳乱妇国产精品一区| www.欧美精品| 不卡亚洲精品| 欧美日韩在线观看一区二区三区| 亚洲精品影院在线观看| 少妇愉情理伦片bd| 中文字幕在线不卡视频| 在线观看亚洲黄色| 国产视频在线一区二区| 成人高潮aa毛片免费| 91日本在线视频| 我不卡影院28| www.色就是色.com| 国产精品九色蝌蚪自拍| 国产又粗又猛又爽又| 日韩精品极品视频免费观看| 草美女在线观看| 国产不卡一区二区三区在线观看| 欧美在线高清| 香蕉视频xxx| 国产精品毛片高清在线完整版| 无码人妻丰满熟妇精品| 亚洲乱亚洲乱妇无码| 亚洲最大成人| 欧美日韩一区二区三| 久久aⅴ国产紧身牛仔裤| 日韩网站在线播放| 欧美日韩亚洲视频| 毛片免费在线观看| 国产精品一区二区三区成人| 亚洲免费福利一区| 日本三区在线观看| 国产精品视频第一区| 伊人久久一区二区| 久久久精品久久久| 伊人久久噜噜噜躁狠狠躁| 成人免费a级片| 成人激情av网| 欧美日韩一级黄色片| 最近2019好看的中文字幕免费| 青青国产精品| 成人小视频在线观看免费| www.亚洲色图.com| 国产嫩bbwbbw高潮| 中文字幕日韩在线播放| 国产精品日本一区二区不卡视频 | 日韩电影在线播放| 久久精品国产精品亚洲精品| 欧美大片xxxx| 亚洲丁香婷深爱综合| 韩国成人漫画| 免费看啪啪网站| 成人免费视频视频在线观看免费| 国产精品美女久久久久av爽| 亚洲欧美一区二区激情| 成人午夜毛片| 台湾无码一区二区| 久久精品欧美一区二区三区不卡| 91成品人影院| 国外成人在线播放| 欧美亚洲国产精品久久| 五月天六月丁香| 欧美色视频日本版| 蜜桃视频网站在线观看| 国产麻豆日韩| 奇米一区二区三区av| 欧美三级免费看| 亚洲欧美中文日韩v在线观看| 欧美xxxx网站| 成人免费播放器| 国产精品久久久久婷婷| 日本免费一区视频| 成人黄色av网站| 亚洲神马久久| 免费成年人视频在线观看| 日韩精品视频观看| 91精品在线免费视频| 成年人视频网站免费观看| 国产精品不卡视频| 日本中文字幕一区二区有码在线| 亚洲aa在线观看| 首页综合国产亚洲丝袜| 九九视频免费看| 中文字幕日韩在线视频| 日本欧美高清| 色哟哟在线观看视频| 欧美性猛交xxxxxxxx| a国产在线视频|