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

從Memcache轉戰Redis,聊聊緩存使用填過的“坑”

原創
開發 架構 Redis
在高并發場景下,很多人都把 Cache(高速緩沖存儲器)當做可以“續命”的靈丹妙藥,哪里高并發壓力大,哪里就上傳 Cache 來解決并發問題。

【51CTO.com原創稿件】在高并發場景下,很多人都把 Cache(高速緩沖存儲器)當做可以“續命”的靈丹妙藥,哪里高并發壓力大,哪里就上傳 Cache 來解決并發問題。

但有時候,即使使用了 Cache,卻發現系統依然卡頓宕機,是因為 Cache 技術不好嗎?非也,其實這是緩存的治理工作沒有做好。

2018 年 5 月 18-19 日,由 51CTO 主辦的全球軟件與運維技術峰會在北京召開。

在 19 日下午“高并發與實時處理”分會場,同程藝龍機票事業群 CTO 王曉波帶來了《高并發場景的緩存治理》的主題演講。

他針對如何讓緩存更適合高并發使用、如何正確使用緩存、如何通過治理化解緩存問題等熱點展開了闡述。

對于我們來說,我們是 OTA 的角色,所以有大量的數據要計算處理變為可售賣商品,總的來說是“商品搬運工,而非生產商”。

所以面對各種大數據并發運行的應用場景,我們需要通過各種緩存技術來提升服務的質量。

想必大家都聽說過服務的治理和數據的治理,那么是否聽說過緩存的治理呢?誠然,在許多場景下,Cache 成了應對各處出現高并發問題的一顆“銀彈”。

但是它并非是放之四海皆準的,有時它反而成了一顆導致系統“掛掉”的自殺子彈。有時候這種原因的出現并非 Cache 本身的技術不好,而是我們沒有做好治理。

下面,我們將從三個方面來具體討論緩存的治理:

  • 緩存使用中的一些痛點
  • 如何用好緩存,用正確緩存
  • 如何通過治理讓緩存的問題化為無形

緩存使用中的一些痛點

我們同程的業務特點是:OTA 類商品,沒有任何一個價格是固定的。像酒店,客戶今天訂、明天訂、連續訂三天、訂兩天,是否跨周末,他們最后得出的價格都是不一樣的。

價格隨著時間的變化而波動的。這些波動會引發大量的計算,進而帶來性能上的損耗。

要解決性能的損耗問題,我們勢必要插入各種 Cache,包括:價格的 Cache、時間段的 Cache、庫存的 Cache。而且這些 Cache 的寫入數據量遠大于整個外部的請求數據量,即:寫多于讀。

下面介紹同程緩存使用的歷史:

  • 一開始,我們僅使用一臺 Memcache 來提供緩存服務。
  • 后來,我們發現 Memcache 存在著支持并發性不好、可運維性欠佳、原子性操作不夠、在誤操作時產生數據不一致等問題。
  • 因此,我們轉為使用 Redis,以單線程保證原子性操作,而且它的數據類型也比較多。當有一批新的業務邏輯被寫到 Redis 中時,我們就把它當作一個累加計數器。

當然,更有甚者把它當作數據庫。由于數據庫比較慢,他們就讓數據線先寫到 Redis,再落盤到數據庫中。

  • 隨后,我們發現在單機 Redis 的情況下,Cache 成了系統的“命門”。哪怕上層的計算尚屬良好、哪怕流量并不大,我們的服務也會“掛掉”。于是我們引入了集群 Redis。
  • 同時,我們用 Java 語言自研了 Redis 的客戶端。我們也在客戶端里實現了二級 Cache。不過,我們發現還是會偶爾出現錯亂的問題。
  • 后來,我們還嘗試了分布式 Cache,以及將 Redis 部署到 Docker 里面。

最終,我們發現這些問題都是跟場景相關。如果你所構建的場景較為紊亂,則直接會導致底層無法提供服務。

下面我們來看看有哪些需要治理的場景,通俗地說就是有哪些“坑”需要“填”。

早期在單機部署 Redis 服務的時代,我們針對業務系統部署了一套使用腳本運維的平臺。

當時在一臺虛機上能跑六萬左右的并發數據,這些對于 Redis 服務器來說基本夠用了。

但是當大量部署,并達到了數百多臺時,我們碰到了兩個問題:

  • 面對高并發的性能需求,我們無法單靠腳本進行運維。一旦運維操作出現失誤或失控,就可能導致 Redis 的主從切換失敗,甚至引起服務宕機,從而直接對整個業務端產生影響。
  • 應用調用的凌亂。在采用微服務化之前,我們面對的往往是一個擁有各種模塊的大系統。

而在使用場景中,我們常把 Redis 看成數據庫、存有各種工程的數據源。同時我們將 Cache 視為一個黑盒子,將各種應用數據都放入其中。

例如,對于一個訂單交易系統,你可能會把訂單積分、訂單說明、訂單數量等信息放入其中,這樣就導致了大量的業務模塊被耦合于此,同時所有的業務邏輯數據塊也集中在了 Redis 處。

那么就算我們去拆分微服務、做代碼解耦,可是多數情況下緩存池中的大數據并沒有得到解耦,多個服務端仍然通過 Redis 去共享和調用數據。

一旦出現宕機,就算你能對服務進行降級,也無法對數據本身采取降級,從而還是會導致整體業務的“掛掉”。

脆弱的數據消失了。由于大家都習慣把 Redit 當作數據庫使用(雖然大家都知道在工程中不應該如此),畢竟它不是數據庫,沒有持久性,所以一旦數據丟失就會出現大的麻煩。

為了防止單臺掛掉,我們可以采用多臺 Redis。此時運維和應用分別有兩種方案:

  • 運維認為:可以做“主從”,并提供一個浮動的虛擬 IP(VIP)地址。在一個節點出現問題時,VIP 地址不用變更,直接連到下一個節點便可。
  • 應用認為:可以在應用客戶端里寫入兩個地址,并采取“哨兵”監控,來實現自動切換。

這兩個方案看似沒有問題,但是架不住 Redis 的濫用。我們曾經碰到過一個現實的案例:如上圖右下角所示,兩個 Redis 根據主從關系可以互相切換。

按照需求,存有 20G 數據的主 Redis 開始對從 Redis 進行同步。此時網絡出現卡頓,而應用正好發現自己的請求也相應變慢了,因此上層應用根據網絡故障采取主從切換。

然而此時由于主從 Redis 正好處于同步狀態,資源消耗殆盡,那么在上次應用看來此時主從 Redis 都是不可達的。

我們經過深入排查,最終發現是在 Cache 中某個表的一個 Key 中,被存放了 20G 的數據。

而在程序層面上,他們并沒有控制好該 Key 的消失時間(如一周),因而造成了該 Key 被持續追加增大的狀況。

由上可見,就算我們對 Redis 進行了拆分,這個巨大的 Key 仍會存在于某一個“片”上。

如上圖所示,仍以 Redis 為例,我們能夠監控的方面包括:

  • 當前客戶端的連接數
  • 客戶端的輸出與輸入情況
  • 是否出現堵塞
  • 被分配的整個內存總量
  • 主從復制時的狀態信息
  • 集群的情況
  • 各服務器每秒執行的命令數量

可以說,這些監控的方面并不能及時地發現上述 20 個 G 的 Key 數據。再比如:通常系統是在客戶下訂單之后,才增加會員積分。

但是在應用設計上卻將核心訂單里的核心 Key,與本該滯后增加的積分輔助進程,放在了同一個實例之中。

由于我們能夠監控到的都是些延遲信息,因此這種將級別高的數據與級別低的數據混淆的情況,是無法被監控到的。

上面是一段運維與開發的真實對話,曾發生在我們公司內部的 IM 上,它反映了在 DevOps 推進之前,運維與開發之間的矛盾。

開發問:Redis 為什么不能訪問?

運維答:剛才服務器因內存故障自動重啟了。其背后的原因是:一個 Cache 的故障導致了某個業務的故障。業務認為自己的代碼沒有問題,原因在于運維的 Cache 上。

開發問:為什么我的 Cache 的延遲這么大?

運維答:發現開發在此處放了幾萬條數據,從而影響了插入排序。

開發問:我寫進去的 Key 找不到?肯定是 Cache 出錯了。這其實是運維 Cache 與使用 Cache 之間的最大矛盾。

運維答:你的 Redis 超過最大限制了,根本就沒寫成功,或者寫進去就直接被淘汰了。這就是大家都把它當成黑盒所帶來的問題。

開發問:剛剛為何讀取全部失敗?

運維答:網絡臨時中斷,在全同步完成之前,從機的讀取全部失敗了。這是一個非常經典的問題,當時運維為了簡化起見,將主從代替了集群模式。

開發問:我的系統需要 800G 的 Redis,何時能準備好?

運維答:我們線上的服務器最大只有 256 G。

開發問:為什么 Redis 慢得像驢一樣,是否服務器出了故障?

運維答:對千萬級的 Key,使用 Keys*,肯定會慢。

由上可見這些問題既有來自運維的,也有來自開發的,同時還有當前技術所限制的。

我們在應對并發查詢時,只注重它給我們帶來的“快”這一性能特點,卻忽略了對 Cache 的使用規范,以及在設計時需要考慮到的各種本身缺點。

如何用好緩存,用正確緩存?

因此在某次重大故障發生之后,我們總結出:沒想到初始狀態下只有 30000 行代碼的小小 Redis 竟然能帶來如此神奇的功能。

以至于它在程序員手中變成了一把“見到釘子就想錘的錘子”,即:他們看見任何的需求都想用緩存去解決。

于是他們相繼開發出來了基于緩存的日志搜集器、倒計時、計數器、訂單系統等,卻忘記了它本身只是一個 Cache。一旦出現了故障,它們將如何去保證其本身呢?

下面我們來看看緩存故障的具體因素有哪些?

過度依賴

即:明明不需要設置緩存之處,卻非要用緩存。程序員們常認為某處可能會在將來出現大的并發量,故放置了緩存,卻忘記了對數據進行隔離,以及使用的方式是否正確。

例如:在某些代碼中,一個函數會執行一到兩百次 Cache 的讀取,通過反復的 get 操作,對同一個 Key 進行連續的讀取。

試想,一次并發會帶給 Redis 多少次操作呢?這些對于 Redis 來說負載是相當巨大的。

數據落盤

這是一個高頻次出現的問題。由于大家確實需要一個高速的 KV 存儲,來實現數據落盤需求。

因此他們都會把整個 Cache 當作數據庫去使用,將任何不允許丟失的數據都放在 Cache 之中。

即使公司有各種使用規范,此現象仍是無法杜絕。最終我們在 Cache 平臺上真正做了一個 KV 數據庫供程序員們使用,并且要求他們在使用的時候,必須聲明用的是 KV 數據庫還是 Cache。

超大容量

由于大家都知道“放到內存里是最快的”,因此他們對于內存的需求是無窮盡的。更有甚者,有人曾向我提出 10 個 T 容量的需求,而根本不去考慮營收上的成本。

雪崩效應

由于我們使用的是大量依賴于緩存的數據,來為并發提供支撐,一旦緩存出現問題,就會產生雪崩效應。

即:外面的流量還在,你卻不得不重啟整個緩存服務器,進而會造成 Cache 被清空的情況。

由于斷絕了數據的來源,這將導致后端的服務連片“掛掉”。為了防止雪崩的出現,我們會多寫一份數據到特定磁盤上。

其數據“新鮮度”可能不夠,但是當雪崩發生時,它會被加載到內存中,以防止雪崩的下一波沖擊,從而能夠順利地過渡到我們重新將“新鮮”的數據灌進來為止。

我們對上面提到的“坑”總結一下:

  • 最厲害的是:使用者亂用、濫用和懶用。如前例所說,我們平時對于緩存到底在哪里用、怎么用、防止什么等方面考慮得實在太少。
  • 運維數千臺毫無使用規則的緩存服務器。我們常說 DevOps 的做法是讓應用與運維靠得更近,但是針對緩存進行運維時,由于應用開發都不關心里面的數據,又何談相互靠近呢?
  • 運維不懂開發,開發不懂運維。這導致了緩存系統上各自為政,無法真正地應用好 Cache。
  • 緩存在無設計、無控制的情況下被使用。一般情況下 JVM 都能監控到內存的爆漲,并考慮是否需要回收。但是如前例所示,在出現了一個 Key 居然有 20G 大小時、我們卻往往忽視了一個 Key 在緩存服務器上的爆漲。
  • 開發人員能力的不同。由于不可能要求所有的開發人員都是前端工程師,那么當你這個團隊里面有不同經驗的人員時,如何讓他們能寫出同樣規范的代碼呢?
  • 畢竟我們做的是工程,需要更多的人能夠保證寫出來的代碼不會發生上述的問題。
  • 太多的服務器資源被浪費。特別是 Cache 的整體浪費是非常巨大的。無論并發量高或低,是否真正需要,大家都在使用它的內存。
  • 例如:在我們的幾千臺 Cache Server 中,最高浪費量可達 60%。一些只有幾百或幾千 KPS 要求的系統或數據也被設計運行在了 Cache 昂貴的內存中。
  • 而實際上它們可能僅僅是為了應對一月一次、或一年一次促銷活動的 Cache 高峰需求。
  • 懶人心理,應對變化不夠快。應對高并發量,十個程序員有五個會說:為數據層添加 Cache,而不會真正去為架構做長遠的規劃。

如何通過治理讓緩存的問題化為無形

那么到底緩存應當如何被治理呢?從真正的開發哲學角度上說,我們想要的是一個百變的魔術箱,它能夠快速地自我變化與處理,而不需要開發和運維人員擔心濫用的問題。

另外,其他需要應對的方面還包括:應用對緩存大小的需求就像貪吃蛇一般,一堆孤島般的單機服務器,緩存服務運維則像一個迷宮。

因此,我們希望構建的是一種能適用各種應用場景的緩存服務,而不是冷冰冰的 Cache Server。

起初我們嘗試了各種現成的開源方案,但是后來發現它們或多或少存在著一些問題。

例如:

  • Cachecloud,對于部署和運維方面欠佳。
  • Codis,本身做了一個很大的集群,但是我們考慮到當這么一個超大池出現問題時,整個團隊在應對上會失去靈活性。
  • 例如:我們會擔心業務數據塊可能未做隔離,就被放到了池中,那么當一個實例“掛掉”時,所有的數據塊都會受到影響。
  • Pika,雖然可以使用硬盤,但是部署方式很少。
  • Twemproxy,只是代理見長,其他的能力欠佳。

后來,我們選擇自己動手,做了一個 phoenix 的方案。整個系統包含了客戶端、運維平臺、以及存儲擴容等方面。

在最初期的架構設計上,我們只讓應用端通過簡單的 SDK 去使用該系統。

為了避免服務端延續查找 Cache Server 的模式,我們要求應用事先聲明其項目和數據場景,然后給系統分配一個 Key。SDK 籍此為應用分配一個新的或既有的緩存倉庫。

如上圖所示,為了加快速度,我們將緩存區分出多個虛擬的邏輯池,它們對于上層調度系統來說就是一個個的場景。

那么應用就可以籍此申請包含需要存放何種數據的場景,最后根據所分配到的 Key 進行調用。

此處,底層是各種數據的復制和遷移,而兩邊則是相應的監控和運維。

但是在系統真正“跑起來”的時候,我們發現很難對其進行部署和擴容,因此在改造時,我們做重了整個緩存客戶端 SDK,并引入了場景的配置。

我們通過進行本地緩存的管理,添加過濾條件,以保證客戶端讀取緩存時,能夠知道具體的數據源和基本的協議,從而判斷出要訪問的是 Redis、還是 MemCache、或是其他類型的存儲。

在 Cache 客戶端做好之后,我們又碰到了新的問題:由于同程使用了包括 Java、.Net、Go,Node.js 等多種語言的開發模式,如果為每一種語言都準備和維護一套 Cache 的客戶端的話,顯然非常耗費人力。

同時,對于維護來說:只要是程序就會有 Bug,只要有 Bug 就需要升級。一旦所有事業部的所有應用都要升級 SDK,那么對于所有嵌套應用的中間件來說,都要進行升級測試,這將會牽扯到巨大的回歸量。

可以說這樣的反復測試幾乎是不現實的。于是我們需要做出一個代理層,通過把協議、過濾、場景等內容下沉到 Proxy 中,以實現SDK的整體輕量化。

與此同時,我們在部署時也引入了容器,將整個 Redis 都運行在容器之中,并讓容器去完成整個應用的部署。

通過容器化的部署,集群的建立變得極其簡單,我們也大幅豐富了集群的方案。

我們實現了為每個應用場景都能配有一個(或一種)Key,并且被一個(或一種)集群來服務。

眾所周知,Redis 雖然實現了遷移擴容,但是其操作較為復雜。因此我們自行研發了一套遷移調度系統,自動化地實現了從流量擴容到數據擴容、以及從縱向到橫向的擴容。

如前所述,我們有著 Redis 和 Memcache 兩種客戶端,它們是使用不同的協議進行訪問。因此,我們通過統一的 Proxy 來實現良好的支持。

如今在我們的緩存平臺上,運維人員唯一需要做的就是:往該緩存平臺里添加一臺物理服務器、插上網線、然后系統就能夠自動發現新的服務器的加入,進而開啟 Redis。

而對于單場景下的 Redis 實例,我們也能夠通過控制臺,以獲取包括 Top10 的 Key、當前訪問最多的 Key、Key 的屬主、最后由誰執行了寫入或修改等多個監控項。

可見,由于上下層都是自建的,因此我們擴展了原來 Redis 里沒有的監控項。

上圖是 Topkey 使用情況的一個示例,就像程序在故障時經常用到的 Dump 文件一樣,它能夠反映出后續的各種編排。

王曉波,同程藝龍機票事業群 CTO,專注于高并發互聯網架構設計、分布式電子商務交易平臺設計、大數據分析平臺設計、高可用性系統設計。 設計過多個并發百萬以上平臺。 擁有十多年豐富的技術架構、技術咨詢經驗,深刻理解電商系統對技術選擇的重要性。

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

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

2020-02-15 15:02:44

產品技術設計團隊

2019-04-23 08:42:42

EhcacheMemcacheRedis

2019-07-21 09:17:11

數據緩存架構

2018-11-15 12:12:31

Memcache緩存系統

2020-11-03 13:50:31

Redis緩存數據庫

2021-09-26 09:16:45

RedisGeo 類型數據類型

2024-05-06 00:00:00

緩存高并發數據

2022-10-20 18:00:00

MyBatis緩存類型

2023-02-24 16:46:25

Glide緩存機制

2024-06-24 00:30:00

2021-08-14 09:48:02

ReentrantLock多線編程

2022-03-09 09:43:20

并發編程Java

2021-11-05 07:59:25

HashMapJava知識總結

2025-07-25 09:02:56

2017-11-08 12:51:12

2018-09-12 19:46:53

數據庫MySQLRedis

2020-11-09 15:49:38

PHPMemcache網絡安全

2023-06-26 08:31:59

哈希緩存系統

2024-07-25 08:39:48

2023-05-12 11:52:21

緩存場景性能
點贊
收藏

51CTO技術棧公眾號

精品一区二区三区在线观看 | 三上悠亚 电影| 91极品在线| 成人精品免费视频| 欧美在线视频a| 精品人妻中文无码av在线 | 欧美日韩aaa| 东北少妇不带套对白| 免费成人av电影| 国产精品中文字幕欧美| 青草热久免费精品视频| 黄视频网站免费看| 精品影片在线观看的网站| 欧美性感一类影片在线播放| 2022中文字幕| 五月天婷婷在线播放| 日本女优在线视频一区二区| 欧美激情亚洲激情| 一区二区三区伦理片| 色悠久久久久综合先锋影音下载| 日韩欧美成人免费视频| 色撸撸在线观看| 色播色播色播色播色播在线| 国产精品性做久久久久久| 国产成人综合亚洲| 中文字幕日韩一级| 91精品综合久久久久久久久久久| 精品亚洲永久免费精品| 欧美性猛交xx| 欧美黑粗硬大| 91国内精品野花午夜精品| 免费不卡av在线| av网址在线播放| 欧美高清在线精品一区| 久久99久久精品国产| 精品毛片在线观看| 激情综合色丁香一区二区| 国产福利成人在线| 99热在线观看免费精品| 一区在线观看| 欧美日本精品在线| 男人与禽猛交狂配| 91偷拍一区二区三区精品| 亚洲欧美在线免费| 毛茸茸多毛bbb毛多视频| xxxx日韩| 精品成人在线观看| 少妇伦子伦精品无吗| 国产精品美女久久久久人| 欧美午夜精品一区二区三区 | 久久精品999| 国产精品久久久久久搜索| 日本视频在线观看免费| 国产欧美丝祙| 欧美亚洲午夜视频在线观看| 青青草免费观看视频| 国产亚洲毛片| 国产97色在线| 中文字幕天堂在线| 日韩国产欧美视频| 国产精品免费一区二区三区都可以| 日日夜夜操视频| 久久九九国产| 国产精品入口尤物| 一区二区www| 国产麻豆午夜三级精品| 91情侣偷在线精品国产| 99在线小视频| 成人一二三区视频| 久久综合九色综合网站| 加勒比一区二区三区在线| 欧美国产综合一区二区| 伊人久久大香线蕉精品| bt在线麻豆视频| 亚洲一级二级在线| 欧美亚洲国产成人| 国产一区二区三区四区五区3d | 免费观看黄色av| 99久久精品国产毛片| 欧美激情专区| 男人的天堂在线视频免费观看| 亚洲三级久久久| 免费看毛片的网址| 自拍一区在线观看| 欧美男人的天堂一二区| aaa黄色大片| 免费看日本一区二区| 日韩在线免费视频观看| 麻豆chinese极品少妇| 国产亚洲午夜| 国产自摸综合网| 日日夜夜精品免费| 国产日产精品一区| 无码人妻精品一区二区蜜桃百度| 9765激情中文在线| 欧美三片在线视频观看 | 亚洲 日本 欧美 中文幕| 久久精品国产精品青草| 国产精品入口免费| 国产在线免费观看| 亚洲一区二区三区中文字幕| 青青青在线播放| 欧美成年网站| 一区二区三区四区精品| 久久精品免费av| 日本va欧美va瓶| 精品国产乱码久久久久久久软件| 1024国产在线| 精品欧美激情精品一区| 午夜一区二区视频| 宅男在线一区| 国产+成+人+亚洲欧洲| 中文字幕av影视| 99国产欧美另类久久久精品| 中文精品视频一区二区在线观看| 婷婷电影在线观看| 欧美成人一区二区三区片免费| 亚洲成人黄色av| 亚洲一级黄色| 91精品国产高清久久久久久91裸体 | 国产一区二区高清| 97碰碰视频| 日本成a人片在线观看| 日韩欧美主播在线| 国产大尺度视频| 午夜欧美理论片| 成人免费网站在线| 成人免费黄色网页| 色呦呦一区二区三区| www.日本高清| 国产精品videosex极品| 成人免费网站在线| 男人的天堂在线视频免费观看 | 国产精品电影网| 五月婷婷综合久久| 亚洲国产视频在线| 国产sm在线观看| 午夜精品亚洲| 亚洲综合日韩在线| 麻豆免费在线观看| 欧美日韩精品欧美日韩精品一| 熟女俱乐部一区二区| 亚洲一区二区动漫| 精品一卡二卡三卡四卡日本乱码 | 天天躁夜夜躁狠狠是什么心态| 在线亚洲激情| 日韩免费电影网站| 天堂网av2018| 久久精品国产亚洲一区二区三区| 午夜精品一区二区在线观看的| 亚洲成av在线| 最近2019免费中文字幕视频三 | 五月天亚洲综合| 天天综合网天天| 在线精品91av| 97超碰中文字幕| 亚洲欧洲综合另类在线| 亚洲国产欧美91| 午夜精品久久99蜜桃的功能介绍| av一区二区三区免费| 美足av综合网| 亚洲精品国产精品久久清纯直播 | 少妇被躁爽到高潮无码文| 国模一区二区三区白浆| 麻豆传媒网站在线观看| 一区二区三区在线免费看 | 久久婷婷综合国产| 成人h动漫精品一区二区| 精品少妇一区二区三区在线| 免费久久精品| 成人a在线观看| 粗大黑人巨茎大战欧美成人| 精品久久久久久综合日本欧美| 日韩久久精品视频| 久久精品一区四区| 国产无遮挡猛进猛出免费软件 | 免费观看日韩毛片| 国产一区二区欧美| 91久久中文字幕| 超级碰碰不卡在线视频| 精品中文视频在线| 在线观看日韩一区二区| 亚洲人精品午夜| 少妇精品一区二区| 美女一区二区久久| 男人c女人视频| 九九亚洲视频| 91久久精品国产91久久性色tv| 性欧美18~19sex高清播放| 色午夜这里只有精品| 精品国自产在线观看| 日韩欧美国产激情| 极品魔鬼身材女神啪啪精品| 99精品视频在线播放观看| 最新天堂在线视频| 亚洲精品系列| 一区二区三区国产福利| 猫咪成人在线观看| 91热精品视频| 日本欧美不卡| 久久免费视频网站| 尤物网址在线观看| 日韩精品极品视频免费观看| 国产日韩欧美视频在线观看| 欧美色道久久88综合亚洲精品| 欧美做爰啪啪xxxⅹ性| a美女胸又www黄视频久久| 亚洲欧洲日本精品| 免费日韩av片| 日韩精品综合在线| 婷婷亚洲图片| 天堂一区二区三区| 欧美巨大xxxx| 9a蜜桃久久久久久免费| 欧美日韩卡一| 日韩av电影院| yellow在线观看网址| 久久久av一区| 午夜不卡视频| 亚洲色图美腿丝袜| 五月婷婷深深爱| 欧美成人精品福利| 91九色蝌蚪91por成人| 色哟哟亚洲精品| 天天操天天摸天天干| 亚洲在线成人精品| 国产女人被狂躁到高潮小说| 中文字幕欧美三区| 摸摸摸bbb毛毛毛片| 91网站在线播放| 91丨porny丨对白| 高清成人免费视频| 超级砰砰砰97免费观看最新一期 | 97精品人妻一区二区三区蜜桃| 国精产品一区一区三区mba视频 | 色多多国产成人永久免费网站 | 亚洲综合在线第一页| 一区二区三区影视| 自拍偷拍国产精品| 波多野结衣喷潮| 亚洲欧洲日产国码二区| 九九九视频在线观看| 欧美激情一区二区三区蜜桃视频| 亚洲国产无码精品| 久久亚洲精品国产精品紫薇| 水蜜桃av无码| 97精品久久久午夜一区二区三区| 日韩精品人妻中文字幕有码| 99久久精品免费观看| 中出视频在线观看| 91香蕉视频mp4| 欧美人与性囗牲恔配| 欧美—级在线免费片| 精品日韩在线视频| 国产精品午夜免费| 韩国一级黄色录像| 亚洲婷婷综合久久一本伊一区| 一区二区三区四区五区| 亚洲图片欧美视频| 天天综合天天干| 日本高清免费不卡视频| 中文在线a天堂| 欧美一区二区三区在线电影| 性生活视频软件| 亚洲国内精品在线| 国产永久免费高清在线观看 | 345成人影院| 国产精品久久久久久久美男| 成人污污视频| 国产一区二区在线网站| 深爱激情综合| 在线一区亚洲| 亚洲色诱最新| 五月婷婷激情久久| 国产传媒久久文化传媒| 国产精品久久AV无码| 国产午夜精品一区二区三区嫩草| 久久精品日韩无码| 亚洲国产精品自拍| 黄色污污网站在线观看| 777精品伊人久久久久大香线蕉| 精品久久人妻av中文字幕| 精品亚洲va在线va天堂资源站| 1769视频在线播放免费观看| 久久久久中文字幕| 高清电影一区| 91黄在线观看| 国产一区二区区别| 18禁裸男晨勃露j毛免费观看| 日韩精品一级中文字幕精品视频免费观看| 性生活免费在线观看| youjizz国产精品| 久久午夜精品视频| 精品国产电影一区| 国产精品九九九九| 亚洲精品在线视频| 中文字幕资源网在线观看| 欧美在线xxx| 综合久久成人| 在线视频亚洲自拍| 久久久国产亚洲精品| 日本人妻一区二区三区| 国产精品区一区二区三区| 日本少妇bbwbbw精品| 欧美精选在线播放| 亚洲欧美日韩免费| 精品综合久久久久久97| 精品视频一区二区三区四区五区| 国产精品免费一区二区三区在线观看 | 免费网站在线观看视频| 欧美aaaaa成人免费观看视频| 污污免费在线观看| 亚洲欧美日韩电影| 中文文字幕一区二区三三| 亚洲精品日韩丝袜精品| 国内老司机av在线| 亚洲综合成人婷婷小说| 欧美a级成人淫片免费看| 亚洲中文字幕无码专区| 国产99久久久久| 视频这里只有精品| 欧美无砖专区一中文字| 日本天堂在线| 91国语精品自产拍在线观看性色| 国产亚洲高清一区| 中文字幕黄色大片| 男人的j进女人的j一区| 国产毛片久久久久久久| 欧美日韩一区二区三区| 日本精品一区二区在线观看| 欧美成人一区在线| 国产精品成人3p一区二区三区| 亚洲精品一区二区三区蜜桃久| 久久国产精品久久w女人spa| 野外性满足hd| 精品欧美激情精品一区| 国产精品国产高清国产| 久久露脸国产精品| 欧美激情99| 国内外成人免费激情视频| caoporen国产精品视频| 国产精品自拍99| 日韩精品视频观看| 亚洲啊v在线| 久久大香伊蕉在人线观看热2| 亚洲永久在线| 成年人网站免费看| 日本高清不卡aⅴ免费网站| 韩国三级av在线免费观看| 日韩av免费网站| 欧洲杯足球赛直播| 九九视频精品在线观看| 国产精品久久久久久久浪潮网站 | 中文字幕精品网| 国产精品4hu.www| 在线视频不卡国产| 国产成人精品免费| 日本少妇毛茸茸高潮| 亚洲精品91美女久久久久久久| 碰碰在线视频| 日韩资源av在线| 久久av中文字幕片| 久久久久成人片免费观看蜜芽| 亚洲成人av片| 色老太综合网| 黄色高清视频网站| 福利一区二区在线观看| 日本韩国欧美中文字幕| 一区二区三区www| 国产日本亚洲| 黄色片视频在线免费观看| 国产日韩欧美不卡在线| 国产美女免费视频| 97免费视频在线播放| 国产日韩欧美一区二区三区| 岛国av免费在线| 亚洲一级二级在线| 大地资源中文在线观看免费版| 91精品久久久久久久久青青| 国产精品www.| 国产视频不卡在线| 日韩一区二区免费视频| 在线免费三级电影网站| a级黄色片网站| 26uuu国产日韩综合| 一区二区国产欧美| 97欧美精品一区二区三区| 青草国产精品| 午夜不卡久久精品无码免费| 欧美伊人久久大香线蕉综合69| 欧美日韩色网| 亚洲欧美99| www..com久久爱| 亚洲一卡二卡在线| 97超级碰碰碰久久久| 国产精品x453.com| 免费观看av网站| 欧美成人a视频| 日韩一区二区三区四区五区| 青青草成人免费在线视频|