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

Redis日志篇:無畏宕機快速恢復的殺手锏

存儲 存儲軟件 Redis
我們通常將 Redis 作為緩存使用,提高讀取響應性能,一旦 Redis 宕機,內存中的數據全部丟失,假如現在直接訪問數據庫大量流量打到 MySQL 可能會帶來更加嚴重的問題。

[[382823]]

我們通常將 Redis 作為緩存使用,提高讀取響應性能,一旦 Redis 宕機,內存中的數據全部丟失,假如現在直接訪問數據庫大量流量打到 MySQL 可能會帶來更加嚴重的問題。

另外慢慢的從數據庫讀取放到 Redis 性能必然比不過從 Redis 獲取快,也會導致響應變慢。

Redis 為了實現無畏宕機快速恢復,設計了兩大殺手锏,分別是 AOF(Append Only FIle)日志和 RDB 快照。

學習一個技術,通常只接觸了零散的技術點,沒有在腦海里建立一個完整的知識框架和架構體系,沒有系統觀。這樣會很吃力,而且會出現一看好像自己會,過后就忘記,一臉懵逼。

跟著「碼哥」一起吃透 Redis,深層次的掌握 Redis 核心原理以及實戰技巧。搭建一套完整的知識框架,學會全局觀去整理整個知識體系。

本文硬核,建議收藏點贊,靜下心來閱讀,我相信都會有很多收獲。

上一篇《Redis 核心篇:唯快不破的秘密》分析了 Redis 的核心數據結構、IO 模型、線程模型、根據不同數據使用合適的數據編碼。深層次掌握真正快的原因!

本篇將圍繞如下幾點展開:

  • 宕機后,如何快速恢復?
  • 宕機了,Redis 如何避免數據丟失?
  • 什么是 RDB 內存快照?
  • AOF 日志實現機制
  • 什么是 寫時復制技術?
  • ….

涉及的知識點如圖所示:

Redis 日志篇:無畏宕機與快速恢復的殺手锏

Redis 全景圖

全景圖可以圍繞兩個緯度展開,分別是:

應用維度:緩存使用、集群運用、數據結構的巧妙使用

系統維度:可以歸類為三高

  • 高性能:線程模型、網絡 IO 模型、數據結構、持久化機制;
  • 高可用:主從復制、哨兵集群、Cluster 分片集群;
  • 高拓展:負載均衡

Redis 系列篇章圍繞如下思維導圖展開,這次從 《Redis 日志篇:無畏宕機與快速恢復的殺手锏》一起探索 Redis 的高性能、持久化機制的秘密。

吃透Redis

擁有全景圖,掌握系統觀。

系統觀其實是至關重要的,從某種程度上說,在解決問題時,擁有了系統觀,就意味著你能有依據、有章法地定位和解決問題。

RDB 內存快照,讓宕機快速恢復

65 哥:Redis 因為某些原因宕機了,會導致所有的流量會打到后端 MySQL,我立馬重啟 Redis,可是它的數據存在內存里面,重啟后如何還是沒有任何數據,如何防止重啟數據丟失呢?

65 哥別急,「碼哥字節」帶你一步步深入理解到底 Redis 宕機后如何快速恢復的。

Redis 數據存儲在內存中,是否可以考慮將內存中的數據寫到磁盤上呢?當 Redis 重啟的時候就把保存在磁盤上的數據快速恢復到內存中,這樣就能實現重啟后正常提供服務了。

65 哥:我想到一個方案,每次執行「寫」操作操作內存的同時寫入到磁盤

這個方案有一個致命問題:每次寫指令不僅寫內存還是寫入磁盤,磁盤的性能相對內存太慢,會導致 Redis 性能大大降低。

內存快照

65 哥:那如何規避這個同時寫入的問題呢?

我們通常將 Redis 當作緩存使用,所以即使 Redis 沒有保存全部數據,還可以通過數據庫獲取,所以 Redis 不會保存所有的數據, Redis 的數據持久化使用了「RDB 數據快照」的方式來實現宕機快速恢復。

65 哥:那什么是 RDB 內存快照呢?

在 Redis 執行「寫」指令過程中,內存數據會一直變化。所謂的內存快照,指的就是 Redis 內存中的數據在某一刻的狀態數據。

好比時間定格在某一刻,當我們拍照的,通過照片就能把某一刻的瞬間畫面完全記錄下來。

Redis 跟這個類似,就是把某一刻的數據以文件的形式拍下來,寫到磁盤上。這個快照文件叫做 RDB 文件,RDB 就是 Redis DataBase 的縮寫。

Redis 通過定時執行 RDB 內存快照,這樣就不必每次執行「寫」指令都寫磁盤,只需要在執行內存快照的時候寫磁盤。既保證了唯快不破,還實現了持久化,宕機快速恢復。

RDB內存快照

在做數據恢復時,直接將 RDB 文件讀入內存完成恢復。

65 哥:對哪些數據做快照呢?或者多久做一次快照呢?這個會影響快照的執行效率。

65 哥不錯呀,開始考慮數據效率問題了。在《Redis 核心篇:唯快不破的秘密》中我們知道他的單線程模型決定了我們要盡可能的避免會阻塞主線程的操作,避免 RDB 文件生成阻塞主線程。

生成 RDB 策略

Redis 提供了兩個指令用于生成 RDB 文件:

  • save:主線程執行,會阻塞;
  • bgsave:調用 glibc 的函數fork產生一個子進程用于寫入 RDB 文件,快照持久化完全交給子進程來處理,父進程繼續處理客戶端請求,生成 RDB 文件的默認配置。

65 哥:那在對內存數據做「快照」的時候,內存數據還能修改么?也就是寫指令能否正常處理?

首先我們要明確一點,避免阻塞和 RDB 文件生成期間能處理寫操作不是一回事。雖然主線程沒有阻塞,到那時為了保證快照的數據的一致性,只能處理讀操作,不能修改正在執行快照的數據。

很明顯,為了生成 RDB 而暫停寫操作,Redis 是不答應的。

65 哥:那 Redis 如何實現一邊處理寫請求,同時生成 RDB 文件呢?

Redis 使用操作系統的多進程寫時復制技術 COW(Copy On Write) 來實現快照持久化,這個機制很有意思,也很少人知道。多進程 COW 也是鑒定程序員知識廣度的一個重要指標。

Redis 在持久化時會調用 glibc 的函數fork產生一個子進程,快照持久化完全交給子進程來處理,父進程繼續處理客戶端請求。

子進程剛剛產生時,它和父進程共享內存里面的代碼段和數據段。這時你可以將父子進程想像成一個連體嬰兒,共享身體。

這是 Linux 操作系統的機制,為了節約內存資源,所以盡可能讓它們共享起來。在進程分離的一瞬間,內存的增長幾乎沒有明顯變化。

bgsave 子進程可以共享主線程的所有內存數據,讀取主線程的數據并寫入到 RDB 文件。

在執行 SAVE 命令或者BGSAVE命令創建一個新的 RDB 文件時,程序會對數據庫中的鍵進行檢查,已過期的鍵不會被保存到新創建的 RDB 文件中。

當主線程執行寫指令修改數據的時候,這個數據就會復制一份副本, bgsave 子進程讀取這個副本數據寫到 RDB 文件,所以主線程就可以直接修改原來的數據。

寫時復制技術保證快照期間數據客修改

這既保證了快照的完整性,也允許主線程同時對數據進行修改,避免了對正常業務的影響。

Redis 會使用 bgsave 對當前內存中的所有數據做快照,這個操作是子進程在后臺完成的,這就允許主線程同時可以修改數據。

65 哥:那可以每秒都執行 RDB 文件么,這樣即使發生宕機最多丟失 1 秒的數據。

過于頻繁的執行全量數據快照,有兩個嚴重性能開銷:

頻繁生成 RDB 文件寫入磁盤,磁盤壓力過大。會出現上一個 RDB 還未執行完,下一個又開始生成,陷入死循環。

fork 出 bgsave 子進程會阻塞主線程,主線程的內存越大,阻塞時間越長。

優缺點

快照的恢復速度快,但是生成 RDB 文件頻率不好把握,頻率過低宕機丟失的數據就會比較多;太快,又會消耗額外開銷。

RDB 采用二進制 + 數據壓縮的方式寫磁盤,文件體積小,數據恢復速度快。

Redis 除了 RDB 全量快照以外,還設計了 AOF 寫后日志,接下來我們一起來聊下什么是 AOF 日志。

AOF 寫后日志,避免宕機數據丟失

AOF 日志存儲的是 Redis 服務器的順序指令序列,AOF 日志只記錄對內存進行修改的指令記錄。

假設 AOF 日志記錄了自 Redis 實例創建以來所有的修改性指令序列,那么就可以通過對一個空的 Redis 實例順序執行所有的指令,也就是「重放」,來恢復 Redis 當前實例的內存數據結構的狀態。

寫前與寫后日志對比

寫前日志(Write Ahead Log, WAL): 在實際寫數據之前,將修改的數據寫到日志文件中,故障恢復得以保證。

比如 MySQL Innodb 存儲引擎 中的 redo log(重做日志)便是記錄修改的數據日志,在實際修改數據前先記錄修改日志在執行修改數據。

寫后日志: 先執行「寫」指令請求,將數據寫入內存,再記錄日志。

AOF寫前指令

日志格式

當 Redis 接受到 「set key MageByte」命令將數據寫到內存后,Redis 會按照如下格式寫入 AOF 文件。

  • 「*3」:表示當前指令分為三個部分,每個部分都是 「$ + 數字」開頭,緊跟后面是該部分具體的「指令、鍵、值」。
  • 「數字」:表示這部分的命令、鍵、值多占用的字節大小。比如 「$3」表示這部分包含 3 個字節,也就是 「set」指令。

AOF 日志格式

65 哥:為什么 Redis 使用寫前日志這種方式呢?

寫后日志避免了額外的檢查開銷,不需要對執行的命令進行語法檢查。如果使用寫前日志的話,就需要先檢查語法是否有誤,否則日志記錄了錯誤的命令,在使用日志恢復的時候就會出錯。

另外,寫后才記錄日志,不會阻塞當前的「寫」指令執行。

65 哥:那有了 AOF 就萬無一失了么?

傻孩子,可沒這么簡單。假如 Redis 剛執行完指令,還沒記錄日志宕機了,就有可能丟失這個命令相關的數據。

還有,AOF 避免了當前命令的阻塞,但是可能會給下一個命令帶來阻塞的風險。AOF 日志是主線程執行,將日志寫入磁盤過程中,如果磁盤壓力大就會導致寫磁盤很慢,導致后續的「寫」指令阻塞。

發現了沒,這兩個問題與磁盤寫回有關,如果能合理的控制「寫」指令執行完后 AOF 日志寫回磁盤的時機,問題就迎刃而解。

寫回策略

為了提高文件的寫入效率,當用戶調用 write 函數,將一些數據寫入到文件的時候,操作系統通常會將寫入數據暫時保存在一個內存緩沖區里面,等到緩沖區的空間被填滿、或者超過了指定的時限之后,才真正地將緩沖區中的數據寫入到磁盤里面。

這種做法雖然提高了效率,但也為寫入數據帶來了安全問題,因為如果計算機發生停機,那么保存在內存緩沖區里面的寫入數據將會丟失。

為此,系統提供了fsync和fdatasync兩個同步函數,它們可以強制讓操作系統立即將緩沖區中的數據寫入到硬盤里面,從而確保寫入數據的安全性。

Redis 提供的 AOF 配置項appendfsync寫回策略直接決定 AOF 持久化功能的效率和安全性。

  • always:同步寫回,寫指令執行完畢立馬將 aof_buf緩沖區中的內容刷寫到 AOF 文件。
  • everysec:每秒寫回,寫指令執行完,日志只會寫到 AOF 文件緩沖區,每隔一秒就把緩沖區內容同步到磁盤。
  • no: 操作系統控制,寫執行執行完畢,把日志寫到 AOF 文件內存緩沖區,由操作系統決定何時刷寫到磁盤。

沒有兩全其美的策略,我們需要在性能和可靠性上做一個取舍。

always同步寫回可以做到數據不丟失,但是每個「寫」指令都需要寫入磁盤,性能最差。

everysec每秒寫回,避免了同步寫回的性能開銷,發生宕機可能有一秒位寫入磁盤的數據丟失,在性能和可靠性之間做了折中。

no操作系統控制,執行寫指令后就寫入 AOF 文件緩沖就可以執行后續的「寫」指令,性能最好,但是有可能丟失很多的數據。

65 哥:那我該如何選擇策略呢?

我們可以根據系統對高性能和高可靠性的要求,來選擇寫回策略。總結一下:想要獲得高性能,就選擇 No 策略;如果想要得到高可靠性保證,就選擇 Always 策略;如果允許數據有一點丟失,又希望性能別受太大影響的話,那么就選擇 Everysec 策略。

優缺點

優點:執行成功才記錄日志,避免了指令語法檢查開銷。同時,不會阻塞當前「寫」指令。

缺點:由于 AOF 記錄的是一個個指令內容,具體格式請看上面的日志格式。故障恢復的時候需要執行每一個指令,如果日志文件太大,整個恢復過程就會非常緩慢。

另外文件系統對文件大小也有限制,不能保存過大文件,文件變大,追加效率也會變低。

日志過大:AOF 重寫機制

65 哥:AOF 日志文件過大著怎么辦?

AOF 寫前日志,記錄的是每個「寫」指令操作。不會像 RDB 全量快照導致性能損耗,但是執行速度沒有 RDB 快,同時日志文件過大也會造成性能問題,對于唯快不破的 Redis 這個真男人來說,絕對不能忍受日志過大導致的問題。

所以,Redis 設計了一個殺手锏「AOF 重寫機制」,Redis 提供了 bgrewriteaof指令用于對 AOF 日志進行瘦身。

其原理就是開辟一個子進程對內存進行遍歷轉換成一系列 Redis 的操作指令,序列化到一個新的 AOF 日志文件中。序列化完畢后再將操作期間發生的增量 AOF 日志追加到這個新的 AOF 日志文件中,追加完畢后就立即替代舊的 AOF 日志文件了,瘦身工作就完成了。

65 哥:為啥 AOF 重寫機制能縮小日志文件呢?

重寫機制有「多變一」功能,將舊日志中的多條指令,在重寫后就變成了一條指令。

如下所示:

AOF重寫機制

65 哥:重寫后 AOF 日志變小,最后把整個數據庫最新數據的操作日志刷寫到磁盤了。重寫會不會阻塞主線程呢?

「碼哥」上文說了,AOF 日志是主線程寫回的,AOF 重寫的過程實際上后臺子進程 bgrewriteaof 完成,防止阻塞主線程。

重寫過程

和 AOF 日志由主線程寫回不同,重寫過程是由后臺子進程 bgrewriteaof 來完成的,這也是為了避免阻塞主線程,導致數據庫性能下降。

總的來說,一共出現 兩個日志,一次拷內存數據拷貝,分別是舊的 AOF 日志和新的 AOF 重寫日志和 Redis 數據拷貝。

Redis 會將重寫過程中的接收到的「寫」指令操作同時記錄到舊的 AOF 緩沖區和 AOF 重寫緩沖區,這樣重寫日志也保存最新的操作。等到拷貝數據的所有操作記錄重寫完成后,重寫緩沖區記錄的最新操作也會寫到新的 AOF 文件中。

每次 AOF 重寫時,Redis 會先執行一個內存拷貝,用于遍歷數據生成重寫記錄;使用兩個日志保證在重寫過程中,新寫入的數據不會丟失,并且保持數據一致性。

AOF 重寫過程

65 哥:AOF 重寫也有一個重寫日志,為什么它不共享使用 AOF 本身的日志呢?

這個問題問得好,有以下兩個原因:

  1. 一個原因是父子進程寫同一個文件必然會產生競爭問題,控制競爭就意味著會影響父進程的性能。
  2. 如果 AOF 重寫過程中失敗了,那么原本的 AOF 文件相當于被污染了,無法做恢復使用。所以 Redis AOF 重寫一個新文件,重寫失敗的話,直接刪除這個文件就好了,不會對原先的 AOF 文件產生影響。等重寫完成之后,直接替換舊文件即可。

Redis 4.0 混合日志模型

重啟 Redis 時,我們很少使用 rdb 來恢復內存狀態,因為會丟失大量數據。我們通常使用 AOF 日志重放,但是重放 AOF 日志性能相對 rdb 來說要慢很多,這樣在 Redis 實例很大的情況下,啟動需要花費很長的時間。

Redis 4.0 為了解決這個問題,帶來了一個新的持久化選項——混合持久化。將 rdb 文件的內容和增量的 AOF 日志文件存在一起。這里的 AOF 日志不再是全量的日志,而是自持久化開始到持久化結束的這段時間發生的增量 AOF 日志,通常這部分 AOF 日志很小。

于是在 Redis 重啟的時候,可以先加載 rdb 的內容,然后再重放增量 AOF 日志就可以完全替代之前的 AOF 全量文件重放,重啟效率因此大幅得到提升。

所以 RDB 內存快照以稍微慢一點的頻率執行,在兩次 RDB 快照期間使用 AOF 日志記錄期間發生的所有「寫」操作。

這樣快照就不用頻繁的執行,同時由于 AOF 只需要記錄兩次快照之間發生的「寫」指令,不需要記錄所有的操作,避免出現文件過大的情況。

總結

Redis 設計了 bgsave 和寫時復制,盡可能避免執行快照期間對讀寫指令的影響,頻繁快照會給磁盤帶來壓力以及 fork 阻塞主線程。

Redis 設計了兩大殺手锏實現了宕機快速恢復,數據不丟失。

避免日志過大,提供了 AOF 重寫機制,根據數據庫的數據最新狀態,生成數據的寫操作作為新日志,并且通過后臺完成不阻塞主線程。

綜合 AOF 和 RDB 在 Redis 4.0 提供了新的持久化策略,混合日志模型。在 Redis 重啟的時候,可以先加載 rdb 的內容,然后再重放增量 AOF 日志就可以完全替代之前的 AOF 全量文件重放,重啟效率因此大幅得到提升。

最后,關于 AOF 和 RDB 的選擇問題,「碼 哥 字 節」有三點建議:

  • 數據不能丟失時,內存快照和 AOF 的混合使用是一個很好的選擇。
  • 如果允許分鐘級別的數據丟失,可以只使用 RDB。
  • 如果只用 AOF,優先使用 everysec 的配置選項,因為它在可靠性和性能之間取了一個平衡。

本文轉載自微信公眾號「碼哥字節」,可以通過以下二維碼關注。轉載本文請聯系碼哥字節公眾號。

 

責任編輯:武曉燕 來源: 碼哥字節
相關推薦

2021-03-18 10:31:27

Redis宕機日志

2022-02-25 08:55:19

BitMapRedis面試題

2022-02-10 09:04:18

RediSDS數據結構

2019-04-22 08:07:31

MySQL數據庫索引

2010-01-15 09:43:49

Windows 7殺手

2010-03-23 17:06:01

2015-06-15 14:48:21

蘋果iOS9軟實力

2025-06-05 09:08:43

2019-08-29 10:46:42

2014-12-01 15:20:36

微信點評商家

2015-08-11 14:38:34

2011-06-27 22:08:42

臺式機評測

2011-07-04 10:00:02

虛擬化

2013-08-13 09:07:20

大數據

2011-06-29 10:08:24

服務器虛擬化解決方案

2010-01-18 17:02:06

2013-11-14 11:02:10

2015-08-04 10:07:08

程序員面試問題

2025-05-27 01:25:00

OpenAIMCPAPI

2022-02-26 10:45:56

CSS滾動時間線動畫
點贊
收藏

51CTO技術棧公眾號

蜜桃av一区二区三区| 色呦呦视频在线| 妖精视频一区二区三区| 在线免费观看一区| 一本色道久久综合亚洲二区三区| 国产成人精品白浆久久69| 午夜欧美理论片| 日韩精品一区在线| 久久久噜噜噜www成人网| 91精彩视频在线播放| 免费日韩一区二区| 日韩精品中文字幕在线播放| 超碰成人在线播放| 欧亚在线中文字幕免费| 99在线热播精品免费| 国产欧美日韩高清| 日本aⅴ在线观看| 欧美猛男做受videos| 日韩欧美你懂的| 国产无套粉嫩白浆内谢的出处| 亚洲妇熟xxxx妇色黄| av成人免费在线观看| 成人激情视频小说免费下载| 杨钰莹一级淫片aaaaaa播放| 国产精品一区二区三区av麻 | 欧美日韩人妻精品一区二区三区| 免费不卡中文字幕在线| 日韩欧美黄色影院| 一起操在线视频| 在线成人视屏| 欧美性生交xxxxxdddd| 日本免费a视频| 免费黄色在线| 国产精品乱人伦| 欧美日韩亚洲免费| 三级在线观看网站| 高清久久久久久| 91在线视频一区| 一女二男一黄一片| 青青草国产精品97视觉盛宴| 38少妇精品导航| 男女做暖暖视频| 天天天综合网| 日韩在线观看成人| 99久久久无码国产精品不卡| 白嫩白嫩国产精品| 精品噜噜噜噜久久久久久久久试看| 亚洲免费av一区| 精品美女一区| 欧美视频在线不卡| 国产高潮免费视频| 日韩色淫视频| 欧美日韩一区二区欧美激情| 男人日女人视频网站| 成人在线免费观看黄色| 亚洲狼人国产精品| 青青草原网站在线观看| 成人日韩欧美| ...av二区三区久久精品| 亚洲蜜桃av| 1769视频在线播放免费观看| 中文字幕的久久| 茄子视频成人在线观看| 黄色av免费在线观看| 2欧美一区二区三区在线观看视频| 国产精品一区二区欧美黑人喷潮水| jizz中国女人| 不卡视频在线看| 麻豆一区区三区四区产品精品蜜桃| 日本在线视频1区| 国产日韩精品久久久| 久久精品国产美女| 高清av在线| 中文字幕国产一区| 亚洲欧洲另类精品久久综合| 久操视频在线播放| 亚洲成人一区二区| 国产精品69页| 国产麻豆精品| 日韩精品黄色网| 成人性视频免费看| 欧美激情五月| 欧美一级免费看| 中文在线字幕免费观| 国产米奇在线777精品观看| 国产精品sss| 欧美一区二区三区成人片在线| 国产精品456| 精品国产乱码久久久久久久软件| 精品视频一二区| 中文字幕二三区不卡| 国产高清不卡无码视频| 久草在线资源站手机版| 欧美日韩国产电影| 免费日本黄色网址| 欧美日韩在线网站| 久久久久亚洲精品国产| 这里只有久久精品视频| 成人午夜视频网站| 亚洲一卡二卡三卡四卡无卡网站在线看| 亚洲丝袜精品| 欧美视频在线一区二区三区 | 成人av激情人伦小说| 亚洲国产日韩欧美在线99| 精品伦精品一区二区三区视频密桃| 国产一区日韩欧美| 国产成人一区二区在线| 东京干手机福利视频| 久久这里只有精品6| 50度灰在线观看| 亚洲淫成人影院| 一本久道中文字幕精品亚洲嫩| 97视频在线免费播放| 国产极品嫩模在线观看91精品| 亚洲国产精品yw在线观看| 久久丫精品忘忧草西安产品| 欧美日韩网址| 国产精品678| 国产福利小视频| 久久久亚洲综合| 国产 日韩 欧美在线| 三级成人黄色影院| 亚洲第一视频网站| 欧美日韩在线观看成人| 另类调教123区| 狠狠久久综合婷婷不卡| 日韩av官网| 欧美一区日韩一区| 69视频在线观看免费| 99热免费精品在线观看| 99免费在线观看视频| eeuss影院www在线播放| 日本韩国精品一区二区在线观看| 中文字幕第3页| 欧美日韩一卡| 亚洲xxxx做受欧美| 成人av电影观看| 91黄色免费版| 久久久久久久毛片| 日韩精品欧美精品| 欧美福利精品| 中文在线最新版地址| 337p日本欧洲亚洲大胆色噜噜| 亚洲色婷婷一区二区三区| 久久精品久久精品| 色女孩综合网| 欧美特大特白屁股xxxx| 精品视频在线播放免| av大片免费在线观看| 粉嫩高潮美女一区二区三区| 人妻激情另类乱人伦人妻| 中文字幕日韩亚洲| 欧美成aaa人片在线观看蜜臀| 国产伦精品一区二区三区视频痴汉 | 天天av天天翘| 五月激情综合色| 精品无码国产一区二区三区51安| 亚洲国产导航| 国产高清一区视频| freexxx性亚洲精品| 精品国产污污免费网站入口 | 99视频一区| 超碰97人人人人人蜜桃| segui88久久综合| 精品无码久久久久久国产| 激情视频网站在线观看| 国产精品私人自拍| 免费成人黄色大片| 在线成人直播| 黑人另类av| 韩日毛片在线观看| 日韩av综合中文字幕| 圆产精品久久久久久久久久久| 懂色av一区二区三区蜜臀| 日韩欧美一区二| 国产欧美高清视频在线| 国产成人精品免费久久久久| 永久免费av在线| 日韩午夜精品电影| 国产精品50页| 久久久综合网站| 在线观看免费视频污| 亚洲区第一页| 国产经品一区二区| 高清av一区| 色综合视频网站| 国产系列电影在线播放网址| 91.com视频| 国产成人精品网| 亚洲免费资源在线播放| theav精尽人亡av| 七七婷婷婷婷精品国产| 国产精品啪啪啪视频| 波多野结衣一区二区三区免费视频| 欧洲亚洲女同hd| www.在线视频| 亚洲小视频在线观看| 国产一区二区麻豆| 亚洲国产欧美一区二区三区丁香婷| 亚洲精品国产91| 国产高清不卡二三区| 欧美a在线视频| 五月天久久网站| 欧美另类高清视频在线| 中文字幕久久精品一区二区| 国产精品吹潮在线观看| 亚洲区欧洲区| 在线观看久久av| 天堂在线观看视频| 欧美一卡二卡三卡| 天干夜夜爽爽日日日日| 亚洲一区二区视频| 99热这里只有精品4| 91美女片黄在线观看| 中国男女全黄大片| 久久国产精品第一页| 日韩网站在线免费观看| 日韩激情免费| 欧美日韩国产免费一区二区三区| 北条麻妃一区二区三区在线| 亚洲精品免费网站| 福利一区二区三区视频在线观看| 2019中文字幕在线观看| 巨大荫蒂视频欧美大片| 一区二区三区国产视频| 日本在线丨区| 日韩成人在线视频| 国产小视频一区| 日韩欧美精品三级| 中文文字幕一区二区三三| 色老汉av一区二区三区| 加勒比av在线播放| 亚洲精品欧美专区| 91制片厂在线| 国产精品国产a级| 国产精品麻豆免费版现看视频| 国产亚洲欧美色| 成人性生交大免费看| gogo大胆日本视频一区| 国产性猛交96| 粉嫩av亚洲一区二区图片| 性久久久久久久久久久久久久| 日本aⅴ精品一区二区三区 | 成人看片在线观看| 国产精品99导航| 擼擼色在线看观看免费| 欧美黑人性生活视频| 青草在线视频| 中文国产亚洲喷潮| 国产黄色在线| 国产一区二区三区在线| av基地在线| 久久视频免费在线播放| 在线看一级片| 国内精品久久久久伊人av| 美女网站在线看| 欧美在线影院在线视频| 神马午夜在线视频| 日本人成精品视频在线| av手机在线观看| 97久久精品人搡人人玩| 亚洲黄色网址| 国产精品视频一区二区高潮| 日本国产欧美| 国产在线视频91| 综合激情五月婷婷| 久久青青草综合| 久久99高清| 性欧美.com| 婷婷久久一区| 国产成人亚洲综合无码| 亚洲天堂黄色| 国产成人精品视频免费看| 七七婷婷婷婷精品国产| 小日子的在线观看免费第8集| 国产成人av一区二区三区在线| 女同性恋一区二区三区| 久久久一区二区三区| 欧美精品久久久久久久久46p| 一区二区三区在线播| 久久精品国产成人av| 欧美日韩国产首页| 国产深喉视频一区二区| 日韩精品在线免费观看| 国产在线观看a| 91chinesevideo永久地址| 亚洲精品555| 亚洲最大福利视频网| 一本色道久久综合狠狠躁的番外| 在线免费观看成人| 一区二区三区精品视频在线观看| 国产裸体免费无遮挡| 国产一区二区三区免费观看| 玖草视频在线观看| 国产农村妇女毛片精品久久麻豆| 亚洲欧美日韩第一页| 亚洲夂夂婷婷色拍ww47| 中文字幕人妻互换av久久| 欧美挠脚心视频网站| av 一区二区三区| 国产亚洲福利一区| 大香伊人久久| 亚洲a级在线观看| 色综合综合网| 日韩一级片免费视频| 久久97超碰国产精品超碰| 久久久精品人妻一区二区三区| 久久美女高清视频 | 在线观看免费亚洲| 欧美一区二区公司| 欧美人在线观看| 四虎精品在线观看| 国产亚洲第一区| 亚洲国产精品日韩专区av有中文| 国产一区亚洲二区三区| 奇米色一区二区三区四区| 最新中文字幕视频| 亚洲一区二区美女| 99热这里只有精品99| 亚洲区一区二区| 美女视频在线免费| 风间由美久久久| 女人色偷偷aa久久天堂| 美女网站色免费| 欧美激情一区在线| 亚洲激情视频一区| 91精品综合久久久久久| 91福利在线视频| 国产精品午夜一区二区欲梦| 色狼人综合干| 国产中文字幕视频在线观看| 国产成都精品91一区二区三| 免费精品在线视频| 欧美日韩精品二区第二页| 91在线高清| 国产精品无码专区在线观看| 波多野结衣在线播放一区| av网站在线观看不卡| 26uuu另类欧美亚洲曰本| 国产无遮挡免费视频| 亚洲精品一区二区三区在线观看 | **欧美日韩vr在线| 欧美a一欧美| 东北少妇不带套对白| 成人激情文学综合网| 国产av 一区二区三区| 欧美精品丝袜中出| 美女国产在线| 欧美大奶子在线| 色悠久久久久综合先锋影音下载| 一区二区精品免费视频| 捆绑调教美女网站视频一区| 日韩精品电影一区二区三区| 色一区在线观看| jyzzz在线观看视频| 国产精品视频永久免费播放| 婷婷精品在线观看| 色一情一乱一伦一区二区三区日本| 国产女人aaa级久久久级| 中文字幕欧美人妻精品| 久久亚洲精品小早川怜子66| 日韩一级淫片| 黄网站欧美内射| 国产日韩欧美一区二区三区乱码 | 亚洲精品电影网| 浪潮色综合久久天堂| 日韩国产欧美精品| 精品一区二区成人精品| 久久免费视频6| 亚洲精品小视频在线观看| 搜成人激情视频| 亚洲国产精品视频一区| 国产精品一二三在| 妺妺窝人体色www婷婷| 精品香蕉在线观看视频一| 国产69精品久久久久按摩| 国产日韩第一页| 国产精品99久| 天天操天天操天天操天天| 亚洲精品日韩欧美| 69堂精品视频在线播放| 免费的一级黄色片| 久久夜色精品国产噜噜av| 91高潮大合集爽到抽搐| 欧美激情在线一区| 亚洲人成精品久久久| 亚欧精品在线视频| 欧美色道久久88综合亚洲精品| 天天影视久久综合| 国产亚洲精品美女久久久m| 久久狠狠婷婷| 日韩女优一区二区| 亚洲欧洲日本专区| 亚洲精品高潮| 精品国产免费av| 国产精品乱人伦| 免费国产精品视频| 国产成人自拍视频在线观看| 亚洲欧洲美洲一区二区三区| 国产夫妻性爱视频|