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

Helios多級緩存實踐

存儲 數據管理
緩存一詞在計算機領域可謂無處不在,不管系統層,業務層都涉及緩存的設計和使用。緩存是典型以空間換時間以提升性能的設計,應用場景眾多。本文將側重于服務端緩存,簡要介紹本地緩存,分布式緩存,多級緩存組。

1.緩存定位 

在講述緩存之前,我們首先需要確認系統是否真的需要緩存。而引入緩存的理由,總結起來無外乎以下兩種:

為緩解 CPU 壓力而做緩存:譬如把方法運行結果存儲起來、把原本要實時計算的內容提前算好、把一些公用的數據進行復用,這可以節省 CPU 算力,順帶提升響應性能。

  • ?為緩解 I/O 壓力而做緩存:譬如把原本對網絡、磁盤等較慢介質的讀寫訪問變為對內存等較快介質的訪問,將原本對單點組件(如數據庫)的讀寫訪問變為到可擴縮部件(如緩存中間件)的訪問,順帶提升響應性能。
  • 緩存是典型以空間換時間來提升性能的手段,一般引入緩存的出發點都是緩解 CPU 和 I/O 資源在峰值流量下的壓力,進而提升系統的響應性能。

2.緩存屬性 

目前 ,“緩存”其實已經被看作一項技術基礎設施,針對該種基礎設施,除了緩存基本的存儲與讀取能力,通用、高效、可統計、可管理等方面的需求也被重視。通常,我們設計或者選擇緩存至少會考慮以下四個維度的屬性:

  • 吞吐量:緩存的吞吐量使用 OPS 值(每秒操作數,Operations per Second,ops/s)來衡量,反映了對緩存進行并發讀、寫操作的效率,即緩存本身的工作效率高低。
  • 命中率:緩存的命中率即成功從緩存中返回結果次數與總請求次數的比值,反映了引入緩存的價值高低,命中率越低,引入緩存的收益越小,價值越低。
  • 擴展功能:緩存除了基本讀寫功能外,還提供哪些額外的管理功能,譬如最大容量、失效時間、失效事件、命中率統計,等等。
  • 分布式支持:緩存可分為“進程內緩存”和“分布式緩存”兩大類,前者只為節點本身提供服務,無網絡訪問操作,速度快但緩存的數據不能在各個服務節點中共享,后者則相反。

3.本地緩存 

下面圍繞幾個主流的本地緩存,HashMap, Guava, Ehcache, Caffeine對上述屬性進行簡單介紹。

吞吐量:因為涉及到并發讀寫,所以對于吞吐量影響最大的即是并發訪問方式。最原始的 HashMap緩存,因為沒有進行并發訪問控制,其吞吐量最高, 但也決定了其無法在多線程并發下正確地工作;后續線程安全版本ConcurrentHashMap 采用分段加鎖的方式進行了訪問控制;ConcurrentHashMap的并發訪問用于解決并發讀寫時的數據丟失,而在其他幾種本地緩存的設計中,因為涉及到數據淘汰與驅逐能力,其主要的數據競爭源于讀取數據的同時,也會伴隨著對數據狀態的寫入操作,寫入數據的同時,也會伴隨著數據狀態的讀取操作。針對這種一種是以 Guava Cache 為代表的同步處理機制,即在訪問數據時一并完成緩存淘汰、統計、失效等狀態變更操作,通過分段加鎖等優化手段來盡量減少競爭。另一種是以 Caffeine 為代表的異步日志提交機制,將對數據的讀、寫過程看作是日志(即對數據的操作指令)的提交過程,然后通過異步批量處理的方式降低鎖的并發訪問。下圖是Caffeine官方文檔中壓測得到的吞吐量數據。

圖片

命中率:主要用于最大化有限物理內存的使用價值。優秀的緩存需要能夠自動地實現淘汰低價值數據,而該能力則會涉及到不同的淘汰策略。目前,最基礎的淘汰策略實現方案有以下三種:

  • FIFO(First In First Out):優先淘汰最早進入被緩存的數據。
  • LRU(Least Recent Used):優先淘汰最久未被使用訪問過的數據。對大多數的緩存場景來說,LRU 都明顯要比 FIFO 策略合理,尤其適合用來處理短時間內頻繁訪問的熱點對象。但相反,它的問題是如果一些熱點數據在系統中經常被頻繁訪問,但最近一段時間因為某種原因未被訪問過,此時這些熱點數據依然要面臨淘汰的命運,LRU 依然可能錯誤淘汰價值更高的數據。
  • LFU(Least Frequently Used):優先淘汰最不經常使用的數據。LFU 可以解決上面 LRU 中熱點數據間隔一段時間不訪問就被淘汰的問題,但同時它又引入了兩個新的問題,首先是需要對每個緩存的數據專門去維護一個計數器,每次訪問都要更新,存在高昂的維護開銷;另一個問題是無法有效反應隨時間變化的熱度變化信息,譬如某個曾經頻繁訪問的數據現在不需要了,它也很難自動被清理出緩存

在此之上,針對LFU策略最近又衍生出了以下兩種變形:

  • TinyLFU(Tiny Least Frequently Used):TinyLFU 是 LFU 的改進版本。為了緩解 LFU 每次訪問都要修改計數器所帶來的性能負擔,TinyLFU 會首先采用 Sketch 對訪問數據進行分析,關于sketch的詳細原理讀者可自行參考Count–min sketch
  • W-TinyLFU(Windows-TinyLFU):W-TinyLFU 又是 TinyLFU 的改進版本。TinyLFU 在實現減少計數器維護頻率的同時,也帶來了無法很好地應對稀疏突發訪問的問題,所謂稀疏突發訪問是指有一些絕對頻率較小,但突發訪問頻率很高的數據,譬如某些運維性質的任務,也許一天、一周只會在特定時間運行一次,其余時間都不會用到,此時 TinyLFU 就很難讓這類元素通過 Sketch 的過濾,因為它們無法在運行期間積累到足夠高的頻率。應對短時間的突發訪問是 LRU 的強項,W-TinyLFU 就結合了 LRU 和 LFU 兩者的優點,從整體上看是它是 LFU 策略,從局部實現上看又是 LRU 策略。具體做法是將新記錄暫時放入一個名為 Window Cache 的前端 LRU 緩存里面,讓這些對象可以在 Window Cache 中累積熱度,如果能通過 TinyLFU 的過濾器,再進入名為 Main Cache 的主緩存中存儲,主緩存根據數據的訪問頻繁程度分為不同的段(LFU 策略,實際上 W-TinyLFU 只分了兩段),但單獨某一段局部來看又是基于 LRU 策略去實現的(稱為 Segmented LRU)。每當前一段緩存滿了之后,會將低價值數據淘汰到后一段中去存儲,直至最后一段也滿了之后,該數據就徹底清理出緩存。下圖是W-TinyLFU驅逐算法的原理圖,詳細的介紹以及在Caffeine中的應用可以參閱caffeine的官方設計文檔。

圖片

擴展功能:是基礎數據讀寫功能之外的額外功能。主要側重于監控統計能力,過期控制,容量控制,引用方式等。

分布式支持:Caffeine只作為本地進程內緩存,而Ehcache則演變為同時能夠支持分布式部署的模式。另外,Ehcache在3.x也支持了堆外緩存的能力,而該能力在本地緩存在GB以上,且對RT敏感的場景就有了用武之地。反觀Caffeine,則更聚焦于單實例本地進程堆內緩存。

4.分布式緩存

在微服務的背景下,Ehcache、Infinispan 等也演進為能夠同時支持分布式部署和進程內嵌部署的緩存方案。Ehcache類的緩存共享方案是通過RMI或者Jgroup多播方式進行廣播緩存通知更新,緩存共享復雜,維護不方便;簡單的共享可以,但是涉及到緩存恢復,大數據緩存,則不合適。

對分布式緩存來說,處理與網絡相關的操作是對吞吐量影響更大的因素,目前Redis已經成為分布式緩存技術的首選,我們暫不對Redis分布式緩存技術做過多的探討,有興趣的讀者可以參閱相關官網和技術書籍。

5.多級緩存 

分布式緩存與進程內的本地緩存各有所長,也有各有局限,它們是互補而非競爭的關系,如有需要,完全可以同時把進程內緩存和分布式緩存互相搭配,構成透明多級緩存(Transparent Multilevel Cache,TMC)。

典型的多級緩存結構如下圖所示,使用進程內緩存作為一級緩存,分布式緩存作為二級緩存,DB等其他數據源作為三級緩存。應用進程首先讀取一級緩存,未命中的情況下讀取二級緩存并回填數據到一級緩存。如果二級緩存也查詢不到,就發起對最終源的查詢,將結果回填到一、二級緩存中去。各級緩存數據的讀取命中率依次是: 進程內緩存 > 分布式緩存 > 數據源。

圖片

對應于上述抽象的多級緩存結構,Helios多級緩存的架構設計圖如下所示:

圖片

在Helios多級緩存的設計中,緩存邊界被定義為:

用戶觸發的數據讀取99.9%以上只走本地緩存,極少數miss到分布式緩存或DB 。

DB只會被分布式調度任務訪問,用以將最新的數據刷新到分布式緩存。

分布式緩存絕大部分情況只會被本地緩存和reload任務訪問,用以中轉最新的數據。

同時采用了如下的分層刷新機制:

  • 分布式調度從數據庫reload最新的數據覆蓋分布式緩存;有條件進行增量更新的緩存數據基于變更事件觸發,分布式調度全量reload兜底。
  • 本地調度定期從分布式緩存同步數據覆蓋本地緩存。

下文將聚焦于在Helios多級緩存建設中的一些實踐。

5.1 緩存一致性

緩存意味著副本,就必然存在著各數據副本之間的一致性問題。而從多級緩存中,存在著本地進程內緩存與分布式緩存的一致性問題,分布式緩存與DB等外部數據源的一致性問題。

關于本地進程內緩存與分布式緩存的一致性問題,因為本地進程內的緩存一般是分布式多實例的結點,所以一般做法是數據發生變動時,在集群內發送推送通知(簡單點的話可采用 Redis 的 PUB/SUB,或者MQ的廣播消息機制,嚴謹的話引入 ZooKeeper 或 Etcd 來處理),讓各個節點的一級緩存自動失效或者刷新。

關于分布式緩存和DB等外部數據源之間的一致性問題,二者皆有成熟的數據訪問接口,無需考慮分布式多實例之間的數據復制問題。問題的復雜性在于如何保證并發讀寫情況下的一致性。更新緩存的的Design Pattern有基礎的有四種:cache aside, Read through, Write through, Write behind caching。其中最經常使用,成本最低的 Cache Aside 模式邏輯如下:

  • 失效:應用程序先從cache取數據,沒有得到,則從數據庫中取數據,成功后,放到緩存中。
  • 命中:應用程序從cache中取數據,取到后返回。
  • 更新:先把數據存到數據庫中,成功后,再讓緩存失效。

關于緩存更新過程中,使用失效而非刷新主要因為避免多個更新請求并發操作導致的臟數據問題。

當然Cache Aside 模式在極端情況下也會存在臟數據問題,針對該一致性問題,要么通過2PC或是Paxos協議保證強一致性,要么就是拼命的降低并發時臟數據的概率。而Facebook在論文使用了這個降低概率的玩法,因為2PC太慢,而Paxos太復雜。CacheAside更新模式是最簡單也是最常用的更新模式,但在實際應用場景下,還需要考慮到業務側對緩存Miss的容忍度,分布式緩存更新請求失敗的兜底和補償策略等等。

Helios的緩存更新策略基于實際場景稍有不同, 具體更新模式如下:

  • 失效:應用程序先從cache取數據,沒有取到數據, 則直接返回未命中(數據不存在)
  • 命中:應用程序從cache中取數據,取到后返回。
  • 更新:先把數據更新存儲到數據庫中,成功后,再主動刷新分布式緩存,之后通過MQ觸發本地進程內緩存的刷新。

Helios多級緩存在更新策略放棄了可能出現的臟數據,而選擇避免緩存穿透,相當于AP模型,而cacheAside模式則屬于CP模型。在實際應用場景下,一般情況下出現臟數據的概率會非常低,但是高并發和高頻更新的數據,將放大出現臟的概率。在實際的使用場景中,為了兜底可能的失敗或者遺漏的更新請求,而增加的全量兜底功能:通過定時任務將DB等數據源的數據全量刷新到分布式緩存。而該兜底方案卻帶來了另外一個可能并發更新分布式緩存的場景。針對可能出現的臟數據以及其他管控訴求,Helios提供了KEY級別的手動驅逐與緩存刷新能力。同時為了降低全量兜底策略對數據不一致的影響,全量兜底策略也被設計成為支持流式更新,業務側可自主選擇更新。

緩存一致性的是無法避免的問題,也沒有絕對合適的一致性方案。未來Helios多級緩存架構會提供多種更新模式,供業務在不同的業務場景下選擇。

5.2 緩存監控

對于進程內緩存,例如Ehcache, Caffeine等都雖然都提供了成熟的訪問統計指標監控能力。但該統計指標均為從運行時刻起的累計指標,無法有效反應隨時間變化的監控信息。同時對于業務側關心的大KEY和熱KEY 指標均不支持。

時間敏感的統計指標監控能力需要使用滑動時間窗口的方式進行分窗口統計上報, Helios內部使用Disruptor異步消費監控事件,以避免對用戶側請求的影響。同時在訪問頻率統計上,又借鑒了Sketch對低頻訪問數據進行過濾,避免大量統計數據帶來的穩定性風險。

圖片

需要注意的是,異步設計往往帶來的副作用就是指標延遲,且大流量下固定緩沖隊列往往會犧牲一部分的數據準確性,這點在Caffeine的異步設計中也有所體現。

5.3 緩存熱點

熱點緩存經常是業務需要引入多級緩存的一個重要原因,針對頻繁訪問的熱點數據,如果每次都要從緩存服務器獲取,可能導致緩存服務?負載過高、或者帶寬過?。而針對熱點數據最直接的想法就是將數據放到使用最近的地方,也就是本地內存。

針對緩存熱點最簡單有效的方式就是手動指定,提前預熱到本地緩存,比如在大促活動前手動將秒殺的商品信息提前緩存到本地進程內緩存。但是手動預熱的方式無法解決突發或者異常熱點流量。這就需要多級緩存框架能夠透明的支持熱點發現與同步機制。上文中提到過Caffeine這種本地進程內緩存通過優秀的淘汰策略W-TinyLFU解決了熱點統計,衰減和稀疏突發訪問的問題,但是Caffeine本身熱點統計周期,熱度衰減策略可能無法match業務的統計周期,而且當業務變更時,存在一定的時間成本優化容量參數以平衡內存使用和緩存命中率。

熱點發現與緩存機制整個流程必然: 熱度統計,熱KEY認定,熱KEY同步與更新這3個流程。目前業界成熟的熱點方案主要有有贊的TMC方案以及京東的HotKey方案。二者均定位于實現全局熱點方案,且整體架構和流程類似。以有贊的TMC解決方案為例:

圖片

  • 本地實例對KEY的訪問進行攔截,監控統計,并進行秒級別的數據上報
  • 中央決策結點使用滑動窗口的方式聚合計算窗口內部的熱度計算
  • 通過熱點閾值判斷出熱點KEY,然后通過etcd等方式通知各應用結點
  • 應用結點獲知熱KEY變化后,變更本地熱KEY列表

全局熱點探測模式相較本地熱點探測會更加精確:特別是在微服務背景下,服務實例較多的情況下,當單個實例探測到熱KEY時可以快速通知其他結點;而且能夠應對流量不均情況下的異常熱點KEY的發現,而代價則是較高的通信成本和相對較高的架構復雜性。當前Helios熱點探測放棄了全局探測的模式,轉而專注于優先探索本地熱點方案。因為針對目前嚴選應用環境 流量幾乎均分到每個實例,可以使用較小的準入閾值來提升本地熱點探測的靈敏度;另外一方面,嚴選環境的當前痛點是希望通過本地熱點自管理的方式去緩解本地緩存過熱,以及緩存參數調優的復雜性。Helios本地熱點探測流程如下如所示:

圖片

  • 本地訪問請求在Miss的情況下,會觸發熱點KEY統計,這里借鑒sketch的模式進行頻率統計,避免頻率統計導致的內存占用風險
  • 熱點準入模塊會根據t-1和當前周期t的KEY訪問頻率進行
  • 當統計周期輪轉時,對內存非熱KEY進行驅逐,降低內存使用水位

自動化的本地熱點探測,熱點管理非熱點驅逐能力降低了本地內存的水位占用,避免出現本地緩存過熱的情況,同時熱點統計模塊的熱點KEY調用分析統計也可以用于指導緩存實例的參數調整和性能優化。

6.總結與展望

緩存分為本地進程內緩存和分布式緩存,因為定位和使用場景的不同,二者在技術選型時候選對象及考察點存在很大不同 ,而且目前二者也已呈現不同的演進方向。透明多級緩存結構則是希望結合二者的長處,通過封裝了本地進程內緩存和分布式緩存之間常用的使用模式,降低了多級緩存的接入與開發成本。而副作用是,本地緩存與分布式緩存Redis類接口命令協議上的差異性導致了多級緩存存在著諸多的限制,同時也帶來緩存一致性等問題。要實現多級緩存架構的透明性仍然存在很大挑戰,未來也將繼續在易用性,一致性,緩存治理等方面與業務側深入探討繼續前行。

責任編輯:武曉燕 來源: 嚴選技術產品團隊
相關推薦

2025-03-27 04:10:00

2025-09-01 08:28:41

2025-09-26 09:31:16

2024-02-20 14:10:55

系統緩存冗余

2023-05-05 18:38:33

多級緩存Caffeine開發

2019-11-05 14:24:31

緩存雪崩框架

2025-08-11 01:55:00

2025-08-08 07:09:58

2018-08-19 13:27:21

數據庫緩存數據庫減負

2023-05-05 06:13:51

分布式多級緩存系統

2024-11-27 16:07:45

2023-10-12 08:00:48

2016-08-23 10:50:50

WebJavascript緩存

2019-08-01 08:36:51

緩存系統并發

2024-12-30 08:55:09

2017-05-05 10:13:03

應用級緩存緩存代碼

2025-11-13 07:42:28

2019-10-21 09:32:48

緩存架構分層

2018-08-20 06:35:56

緩存數據庫分布式

2023-02-28 07:01:11

分布式緩存平臺
點贊
收藏

51CTO技術棧公眾號

国产麻豆日韩欧美久久| 国产亚洲一区| 黄色成人在线免费| 欧美日韩免费高清| 依依成人在线视频| 亚洲国产精品日韩专区av有中文| 日韩三级在线观看| 美女日批免费视频| 99青草视频在线播放视| 国产精品一级在线| 97成人精品区在线播放| 欧美日韩国产黄色| 97久久亚洲| 91成人免费网站| 欧美日韩中文字幕在线播放| 欧美69xxxxx| 激情综合网激情| 国内精品久久影院| 亚洲综合图片一区| 天堂在线精品| 日韩欧美专区在线| 免费涩涩18网站入口| av影院在线| 亚洲欧洲日韩一区二区三区| 久久综合福利| 亚洲黄色片视频| 老司机精品视频一区二区三区| 国内精品免费午夜毛片| 91麻豆精品成人一区二区| 亚洲系列另类av| 欧美精品一区二区久久久| 一个色综合久久| 久久精品女人天堂av免费观看 | 亚洲在线免费视频| 中文字幕欧美在线观看| 夜夜嗨网站十八久久| 久久6精品影院| 很污很黄的网站| 成人激情免费视频| 亚洲人在线观看| 中国av免费看| 免费观看成人性生生活片| 一区二区三区四区在线播放| 狠狠干一区二区| 一级成人免费视频| 肉丝袜脚交视频一区二区| 久久久亚洲国产| 四虎精品免费视频| 不卡在线一区| 亚洲欧美国产一本综合首页| 亚洲国产精品第一页| 99久久999| 在线观看日韩国产| 日韩少妇内射免费播放18禁裸乳| 成人影院在线观看| 综合激情成人伊人| 一区不卡视频| 国产系列电影在线播放网址| 91小视频在线| 成人欧美一区二区三区在线观看| 一区二区三区免费观看视频| 男女视频一区二区| 日韩av电影国产| 国产高潮久久久| 国内精品久久久久久久影视简单 | 成年人视频网站免费| 求av网址在线观看| 国产精品每日更新在线播放网址| 久久精品国产精品国产精品污| 丰满人妻熟女aⅴ一区| 国产成人综合在线播放| 2022国产精品| 性猛交xxxx乱大交孕妇印度| 国产在线麻豆精品观看| 成人在线视频网| 999精品国产| 国产精品自拍毛片| 97神马电影| 日本韩国在线观看| 91在线视频18| 欧美成ee人免费视频| 日韩在线免费播放| 久久久久久久网| 日韩偷拍一区二区| 日本在线观看| 一区二区三区欧美亚洲| 僵尸世界大战2 在线播放| 美女的胸无遮挡在线观看| 色综合久久99| 超碰人人草人人| 国产精品亚洲一区二区在线观看| 91精品国产91久久久久久一区二区| 亚洲精品视频三区| 国产色99精品9i| 精品国产免费一区二区三区四区 | 一本色道久久综合狠狠躁篇怎么玩 | 国产精品精品久久久久久| 在线免费看91| 国产不卡免费视频| 奇米888一区二区三区| av电影在线播放高清免费观看| 国产日韩精品一区| 91视频成人免费| 成人黄色动漫| 欧美在线一区二区三区| 人妻换人妻仑乱| 亚洲精华一区二区三区| 色吧影院999| 久久视频免费在线观看| 视频一区欧美日韩| 国产欧美精品一区二区| 黄色aaa毛片| 久久精品男人的天堂| 天天做天天爱天天高潮| 国产在线美女| 欧美日韩国产一级| 亚洲欧洲日韩综合| 日韩电影免费网站| 国内精品小视频| 中国一级片黄色一级片黄| 国产成人亚洲综合a∨猫咪| 欧美人与物videos另类| 国产黄a三级三级三级av在线看| 黄色精品在线看| 国产无遮挡猛进猛出免费软件| 99ri日韩精品视频| 中文字幕日韩欧美在线| 国产在线视频在线观看| 美腿丝袜亚洲一区| 精品国产电影| 国产在线高潮| 欧美在线小视频| 久久久久久久久久毛片| 日韩在线精品| 日韩免费高清在线观看| 韩国av免费在线| 亚洲欧美一区二区不卡| www.日日操| 欧美调教在线| 欧美俄罗斯性视频| 999精品国产| 18欧美亚洲精品| 亚洲综合在线网站| 欧美成人一区在线观看| 欧美日韩第一页| 国产原创中文av| 中文字幕一区视频| 美女网站免费观看视频| 欧美韩一区二区| 欧美日韩第一页| 99久久免费国产精精品| 欧美激情一区二区三区不卡 | 亚洲伦伦在线| 高清国语自产拍免费一区二区三区| 尤物在线视频| 欧美日韩一区二区三区视频| 法国空姐电影在线观看| 媚黑女一区二区| 久久人人九九| 神马午夜在线视频| 亚洲国产美女久久久久| 免费一级片在线观看| 国产福利一区在线观看| 300部国产真实乱| 欧美视频二区欧美影视| 日韩视频在线观看免费| 国产情侣免费视频| 国产精品视频一二三| 五月婷婷深爱五月| 精品久久久久久久久久久aⅴ| 国产不卡av在线免费观看| 日中文字幕在线| 在线免费视频一区二区| 美女爆乳18禁www久久久久久| 久久免费国产| 视频一区二区三区在线观看| 日本在线中文字幕一区二区三区| 亚洲欧洲自拍偷拍| 91无套直看片红桃| 亚洲精品日日夜夜| 国产性生活一级片| 欧美黄色一区二区| 国产一区再线| 成人免费看视频网站| 在线观看免费高清视频97| 一级黄色大毛片| 一区二区三区高清不卡| 精品久久久久一区二区| 亚洲综合三区| 亚洲精品中文字幕乱码三区不卡| 日韩一区二区三区四区五区| 俺去亚洲欧洲欧美日韩| 成人免费公开视频| 一区二区三区不卡视频在线观看 | 青青热久免费精品视频在线18| 最近中文字幕日韩精品 | 成人无码av片在线观看| 激情都市一区二区| 国产色一区二区三区| 五月激激激综合网色播| 国产精品精品视频| 欧美四级在线| 国产一区二区三区在线观看网站 | 亚洲综合免费观看高清完整版在线 | 91精品在线麻豆| 精国产品一区二区三区a片| 99久久精品情趣| 91网址在线播放| 午夜亚洲福利| 欧美在线激情| 视频一区中文字幕精品| 日韩美女免费线视频| 国产在线激情| 国产视频在线观看一区二区| 91在线观看喷潮| 欧美日韩一区二区在线| 精品国产视频在线观看| 成人sese在线| 亚洲第一成肉网| 性久久久久久| www.欧美黄色| 国产精品99久久久久久动医院| 国产精品手机视频| av在线播放一区二区| 国产成人高潮免费观看精品| 女囚岛在线观看| 色哟哟网站入口亚洲精品| 天堂中文资源在线观看| 91精品国产综合久久小美女| 亚洲国产精品无码久久久| 亚洲午夜久久久久久久久久久| 亚洲精品理论片| 国产ts人妖一区二区| 亚洲另类第一页| 久久激情视频| 青青青青草视频| 欧美aⅴ99久久黑人专区| 神马影院一区二区| 伊人成综合网yiren22| 高清一区二区三区视频| 日本亚洲欧洲无免费码在线| 清纯唯美亚洲激情| 男女在线视频| 欧美大荫蒂xxx| 成人片在线看| 中文字幕亚洲一区| 国产露出视频在线观看| 日韩国产欧美区| 欧美特黄一级视频| 日韩免费电影一区| 国产乱淫a∨片免费视频| 欧美日韩在线观看一区二区| www亚洲视频| 午夜精品久久久久久久久久久| 麻豆视频在线观看| 尤物av一区二区| 少妇人妻丰满做爰xxx| 国产精品萝li| 精品国产国产综合精品| 亚洲视频一区二区免费在线观看| 国产综合精品久久久久成人av| 久久精品综合网| 一区二区黄色片| 久久久久久亚洲综合影院红桃 | 伊人精品久久| 成人av电影免费| 国产精品美女在线观看直播| 国产精品视频免费观看| 日本欧美高清| 奇米影视首页 狠狠色丁香婷婷久久综合| 久久av免费| 日本成人看片网址| 成人看的羞羞网站| 一区二区三区四区视频在线观看| 欧美电影《轻佻寡妇》| 久久免费视频2| 最新国产精品久久久| 日本福利视频在线观看| 在线欧美三区| 亚洲少妇第一页| 久久99热狠狠色一区二区| av在线免费看片| 国产成人高清视频| 男女一区二区三区| 久久久国产精品麻豆| 美女100%露胸无遮挡| 中文字幕中文字幕一区二区 | 日韩一区电影| 欧美xxxx吸乳| 亚洲无线一线二线三线区别av| 欧美视频在线观看网站| 久久久精品五月天| 91丨九色丨蝌蚪| 成人av网站在线观看| 伊人网在线视频观看| 久久久久久久久岛国免费| 无码少妇精品一区二区免费动态| 中日韩av电影| 免费在线一区二区三区| 色综合色狠狠综合色| 91福利在线观看视频| 精品国产露脸精彩对白 | 亚洲国产精品专区久久| av在线播放av| 色综合视频一区中文字幕| 久久电影网站| 国产欧亚日韩视频| 国产一区福利| 亚洲一区精品视频| 国产一区美女| 91极品视频在线观看| 福利电影一区二区| 黄色一级片一级片| 亚洲成av人影院在线观看网| 日韩熟女一区二区| 欧美一卡2卡3卡4卡| 男男电影完整版在线观看| 久久精品中文字幕| 欧美男体视频| 成人综合电影| 日韩欧美中文| 欧美精品色婷婷五月综合| 国产精品一区免费在线观看| v8888av| 中文字幕亚洲不卡| 中文字幕在线天堂| 亚洲电影第1页| 精品176二区| 国产精品国语对白| 免费福利视频一区| 屁屁影院ccyy国产第一页| 久久精品国产第一区二区三区| 熟妇高潮精品一区二区三区| 亚洲激情在线激情| 国产欧美久久久| 亚洲香蕉成视频在线观看 | 国产精品久久久久久久蜜臀| 日韩精品成人一区| 欧美日韩dvd在线观看| 在线国产情侣| 日韩av毛片网| 日韩三区视频| 你懂的av在线| 成人一级视频在线观看| 日韩欧美国产成人精品免费| 欧美亚一区二区| 黄色片在线播放| 情事1991在线| 九九久久成人| 日本中文字幕网址| 国产精品自产自拍| 欧美成欧美va| 日韩欧美黄色影院| 天堂av最新在线| 99re在线播放| 欧美先锋影音| 逼特逼视频在线观看| 国产精品久久久99| 一二三四区视频| 色吧影院999| 9999精品| 97在线免费视频观看| 国产精品一二三| 日本天堂中文字幕| 精品日韩成人av| 大片免费在线看视频| 亚洲综合中文字幕在线观看| 91成人国产| 麻豆传媒在线看| 亚洲在线中文字幕| 黄色一级a毛片| 2023亚洲男人天堂| 国产精品羞羞答答在线观看| 99视频在线免费| 国产精品电影一区二区| 少妇无套内谢久久久久| 亚洲午夜激情免费视频| 精品亚洲a∨| 亚洲欧洲久久| 国产精品亚洲视频| 国产五月天婷婷| 精品国产免费人成在线观看| 3344国产永久在线观看视频| 欧美13一14另类| 久久精品国产免费| 久久久久成人精品无码| 亚洲精品国精品久久99热一| xxxxx性欧美特大| 亚洲三区在线观看| 国内精品免费在线观看| 少妇影院在线观看| 日韩成人中文电影| 欧美网站免费| 久久亚洲国产成人精品无码区 | 亚洲欧美激情一区二区三区| 亚洲va欧美va人人爽| 成人影院免费观看| 91亚洲精品久久久| 亚洲久久成人| 男人av资源站|