色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文深入Redis主從復(fù)制的原理詳解

數(shù)據(jù)分析與開發(fā) ? 來源:ITPUB技術(shù)小棧 ? 作者:ITPUB技術(shù)小棧 ? 2021-02-04 16:13 ? 次閱讀

復(fù)制原理

1.復(fù)制過程

復(fù)制的過程步驟如下:

1、從節(jié)點(diǎn)執(zhí)行 slaveof 命令

2、從節(jié)點(diǎn)只是保存了 slaveof 命令中主節(jié)點(diǎn)的信息,并沒有立即發(fā)起復(fù)制

3、從節(jié)點(diǎn)內(nèi)部的定時(shí)任務(wù)發(fā)現(xiàn)有主節(jié)點(diǎn)的信息,開始使用 socket 連接主節(jié)點(diǎn)

4、連接建立成功后,發(fā)送 ping 命令,希望得到 pong 命令響應(yīng),否則會(huì)進(jìn)行重連

5、如果主節(jié)點(diǎn)設(shè)置了權(quán)限,那么就需要進(jìn)行權(quán)限驗(yàn)證;如果驗(yàn)證失敗,復(fù)制終止。

6、權(quán)限驗(yàn)證通過后,進(jìn)行數(shù)據(jù)同步,這是耗時(shí)最長的操作,主節(jié)點(diǎn)將把所有的數(shù)據(jù)全部發(fā)送給從節(jié)點(diǎn)。

7、當(dāng)主節(jié)點(diǎn)把當(dāng)前的數(shù)據(jù)同步給從節(jié)點(diǎn)后,便完成了復(fù)制的建立流程。接下來,主節(jié)點(diǎn)就會(huì)持續(xù)的把寫命令發(fā)送給從節(jié)點(diǎn),保證主從數(shù)據(jù)一致性。

2.數(shù)據(jù)間的同步

上面說的復(fù)制過程,其中有一個(gè)步驟是“同步數(shù)據(jù)集”,這個(gè)就是現(xiàn)在講的‘?dāng)?shù)據(jù)間的同步’。

redis 同步有 2 個(gè)命令:

sync 和 psync,前者是 redis 2.8 之前的同步命令,后者是 redis 2.8 為了優(yōu)化 sync 新設(shè)計(jì)的命令。我們會(huì)重點(diǎn)關(guān)注 2.8 的 psync 命令。

psync 命令需要 3 個(gè)組件支持:

1、主從節(jié)點(diǎn)各自復(fù)制偏移量 2、主節(jié)點(diǎn)復(fù)制積壓緩沖區(qū) 3、主節(jié)點(diǎn)運(yùn)行 ID

主從節(jié)點(diǎn)各自復(fù)制偏移量:

1、參與復(fù)制的主從節(jié)點(diǎn)都會(huì)維護(hù)自身的復(fù)制偏移量。 2、主節(jié)點(diǎn)在處理完寫入命令后,會(huì)把命令的字節(jié)長度做累加記錄,統(tǒng)計(jì)信息在 info replication 中的 masterreploffset 指標(biāo)中。 3、從節(jié)點(diǎn)每秒鐘上報(bào)自身的的復(fù)制偏移量給主節(jié)點(diǎn),因此主節(jié)點(diǎn)也會(huì)保存從節(jié)點(diǎn)的復(fù)制偏移量。 4、從節(jié)點(diǎn)在接收到主節(jié)點(diǎn)發(fā)送的命令后,也會(huì)累加自身的偏移量,統(tǒng)計(jì)信息在 info replication 中。 5、通過對比主從節(jié)點(diǎn)的復(fù)制偏移量,可以判斷主從節(jié)點(diǎn)數(shù)據(jù)是否一致。

主節(jié)點(diǎn)復(fù)制積壓緩沖區(qū):

1、復(fù)制積壓緩沖區(qū)是一個(gè)保存在主節(jié)點(diǎn)的一個(gè)固定長度的先進(jìn)先出的隊(duì)列。默認(rèn)大小 1MB。

2、這個(gè)隊(duì)列在 slave 連接是創(chuàng)建。這時(shí)主節(jié)點(diǎn)響應(yīng)寫命令時(shí),不但會(huì)把命令發(fā)送給從節(jié)點(diǎn),也會(huì)寫入復(fù)制緩沖區(qū)。

3、他的作用就是用于部分復(fù)制和復(fù)制命令丟失的數(shù)據(jù)補(bǔ)救。通過 info replication 可以看到相關(guān)信息。

主節(jié)點(diǎn)運(yùn)行 ID:

1、每個(gè) redis 啟動(dòng)的時(shí)候,都會(huì)生成一個(gè) 40 位的運(yùn)行 ID。

2、運(yùn)行 ID 的主要作用是用來識(shí)別 Redis 節(jié)點(diǎn)。如果使用 ip+port 的方式,那么如果主節(jié)點(diǎn)重啟修改了 RDB/AOF 數(shù)據(jù),從節(jié)點(diǎn)再基于偏移量進(jìn)行復(fù)制將是不安全的。所以,當(dāng)運(yùn)行 id 變化后,從節(jié)點(diǎn)將進(jìn)行全量復(fù)制。也就是說,redis 重啟后,默認(rèn)從節(jié)點(diǎn)會(huì)進(jìn)行全量復(fù)制。

如果在重啟時(shí)不改變運(yùn)行 ID 呢?

1、可以通過 debug reload 命令重新加載 RDB 并保持運(yùn)行 ID 不變。從而有效的避免不必要的全量復(fù)制。

2、他的缺點(diǎn)則是:debug reload 命令會(huì)阻塞當(dāng)前 Redis 節(jié)點(diǎn)主線程,因此對于大數(shù)據(jù)量的主節(jié)點(diǎn)或者無法容忍阻塞的節(jié)點(diǎn),需要謹(jǐn)慎使用。一般通過故障轉(zhuǎn)移機(jī)制可以解決這個(gè)問題。

psync 命令的使用方式:

命令格式為 psync{runId}{offset}

runId:從節(jié)點(diǎn)所復(fù)制主節(jié)點(diǎn)的運(yùn)行 id offset:當(dāng)前從節(jié)點(diǎn)已復(fù)制的數(shù)據(jù)偏移量

psync 執(zhí)行流程:

84f1b232-584b-11eb-8b86-12bb97331649.png

流程說明:從節(jié)點(diǎn)發(fā)送 psync 命令給主節(jié)點(diǎn),runId 就是目標(biāo)主節(jié)點(diǎn)的 ID,如果沒有默認(rèn)為 -1,offset 是從節(jié)點(diǎn)保存的復(fù)制偏移量,如果是第一次復(fù)制則為 -1.

主節(jié)點(diǎn)會(huì)根據(jù) runid 和 offset 決定返回結(jié)果:

1、如果回復(fù) +FULLRESYNC {runId} {offset} ,那么從節(jié)點(diǎn)將觸發(fā)全量復(fù)制流程。

2、如果回復(fù) +CONTINUE,從節(jié)點(diǎn)將觸發(fā)部分復(fù)制。

3、如果回復(fù) +ERR,說明主節(jié)點(diǎn)不支持 2.8 的 psync 命令,將使用 sync 執(zhí)行全量復(fù)制。

到這里,數(shù)據(jù)之間的同步就講的差不多了,篇幅還是比較長的。主要是針對 psync 命令相關(guān)之間的介紹。

3.全量復(fù)制

全量復(fù)制是 Redis 最早支持的復(fù)制方式,也是主從第一次建立復(fù)制時(shí)必須經(jīng)歷的的階段。觸發(fā)全量復(fù)制的命令是 sync 和 psync。之前說過,這兩個(gè)命令的分水嶺版本是 2.8,redis 2.8 之前使用 sync 只能執(zhí)行全量不同,2.8 之后同時(shí)支持全量同步和部分同步。

流程如下:

852b91aa-584b-11eb-8b86-12bb97331649.png

介紹一下上圖步驟:

1、發(fā)送 psync 命令(spync ?-1)

2、主節(jié)點(diǎn)根據(jù)命令返回 FULLRESYNC

3、從節(jié)點(diǎn)記錄主節(jié)點(diǎn) ID 和 offset

4、主節(jié)點(diǎn) bgsave 并保存 RDB 到本地

5、主節(jié)點(diǎn)發(fā)送 RBD 文件到從節(jié)點(diǎn)

6、從節(jié)點(diǎn)收到 RDB 文件并加載到內(nèi)存中

7、主節(jié)點(diǎn)在從節(jié)點(diǎn)接受數(shù)據(jù)的期間,將新數(shù)據(jù)保存到“復(fù)制客戶端緩沖區(qū)”,當(dāng)從節(jié)點(diǎn)加載 RDB 完畢,再發(fā)送過去。(如果從節(jié)點(diǎn)花費(fèi)時(shí)間過長,將導(dǎo)致緩沖區(qū)溢出,最后全量同步失敗) 8、從節(jié)點(diǎn)清空數(shù)據(jù)后加載 RDB 文件,如果 RDB 文件很大,這一步操作仍然耗時(shí),如果此時(shí)客戶端訪問,將導(dǎo)致數(shù)據(jù)不一致,可以使用配置slave-server-stale-data 關(guān)閉. 9、從節(jié)點(diǎn)成功加載完 RBD 后,如果開啟了 AOF,會(huì)立刻做 bgrewriteaof。

以上加粗的部分是整個(gè)全量同步耗時(shí)的地方。

注意:

1、如過 RDB 文件大于 6GB,并且是千兆網(wǎng)卡,Redis 的默認(rèn)超時(shí)機(jī)制(60 秒),會(huì)導(dǎo)致全量復(fù)制失敗??梢酝ㄟ^調(diào)大 repl-timeout 參數(shù)來解決此問題。

2、Redis 雖然支持無盤復(fù)制,即直接通過網(wǎng)絡(luò)發(fā)送給從節(jié)點(diǎn),但功能不是很完善,生產(chǎn)環(huán)境慎用。

4.部分復(fù)制

當(dāng)從節(jié)點(diǎn)正在復(fù)制主節(jié)點(diǎn)時(shí),如果出現(xiàn)網(wǎng)絡(luò)閃斷和其他異常,從節(jié)點(diǎn)會(huì)讓主節(jié)點(diǎn)補(bǔ)發(fā)丟失的命令數(shù)據(jù),主節(jié)點(diǎn)只需要將復(fù)制緩沖區(qū)的數(shù)據(jù)發(fā)送到從節(jié)點(diǎn)就能夠保證數(shù)據(jù)的一致性,相比較全量復(fù)制,成本小很多。

步驟如下:

854c17ea-584b-11eb-8b86-12bb97331649.png

1、當(dāng)從節(jié)點(diǎn)出現(xiàn)網(wǎng)絡(luò)中斷,超過了 repl-timeout 時(shí)間,主節(jié)點(diǎn)就會(huì)中斷復(fù)制連接。

2、主節(jié)點(diǎn)會(huì)將請求的數(shù)據(jù)寫入到“復(fù)制積壓緩沖區(qū)”,默認(rèn) 1MB。

3、當(dāng)從節(jié)點(diǎn)恢復(fù),重新連接上主節(jié)點(diǎn),從節(jié)點(diǎn)會(huì)將 offset 和主節(jié)點(diǎn) id 發(fā)送到主節(jié)點(diǎn)

4、主節(jié)點(diǎn)校驗(yàn)后,如果偏移量的數(shù)后的數(shù)據(jù)在緩沖區(qū)中,就發(fā)送 cuntinue 響應(yīng) —— 表示可以進(jìn)行部分復(fù)制

5、主節(jié)點(diǎn)將緩沖區(qū)的數(shù)據(jù)發(fā)送到從節(jié)點(diǎn),保證主從復(fù)制進(jìn)行正常狀態(tài)。

5.心跳

主從節(jié)點(diǎn)在建立復(fù)制后,他們之間維護(hù)著長連接并彼此發(fā)送心跳命令。

心跳的關(guān)鍵機(jī)制如下:

1、中從都有心跳檢測機(jī)制,各自模擬成對方的客戶端進(jìn)行通信,通過 client list 命令查看復(fù)制相關(guān)客戶端信息,主節(jié)點(diǎn)的連接狀態(tài)為 flags = M,從節(jié)點(diǎn)的連接狀態(tài)是 flags = S。

2、主節(jié)點(diǎn)默認(rèn)每隔 10 秒對從節(jié)點(diǎn)發(fā)送 ping 命令,可修改配置 repl-ping-slave-period 控制發(fā)送頻率。

3、從節(jié)點(diǎn)在主線程每隔一秒發(fā)送 replconf ack{offset} 命令,給主節(jié)點(diǎn)上報(bào)自身當(dāng)前的復(fù)制偏移量。

4、主節(jié)點(diǎn)收到 replconf 信息后,判斷從節(jié)點(diǎn)超時(shí)時(shí)間,如果超過 repl-timeout 60 秒,則判斷節(jié)點(diǎn)下線。

85898ada-584b-11eb-8b86-12bb97331649.png

注意:為了降低主從延遲,一般把 redis 主從節(jié)點(diǎn)部署在相同的機(jī)房/同城機(jī)房,避免網(wǎng)絡(luò)延遲帶來的網(wǎng)絡(luò)分區(qū)造成的心跳中斷等情況。

6.異步復(fù)制

主節(jié)點(diǎn)不但負(fù)責(zé)數(shù)據(jù)讀寫,還負(fù)責(zé)把寫命令同步給從節(jié)點(diǎn),寫命令的發(fā)送過程是異步完成,也就是說主節(jié)點(diǎn)處理完寫命令后立即返回客戶度,并不等待從節(jié)點(diǎn)復(fù)制完成。

異步復(fù)制的步驟很簡單,如下:

1、主節(jié)點(diǎn)接受處理命令 2、主節(jié)點(diǎn)處理完后返回響應(yīng)結(jié)果 3、對于修改命令,異步發(fā)送給從節(jié)點(diǎn),從節(jié)點(diǎn)在主線程中執(zhí)行復(fù)制的命令。

85a8bcde-584b-11eb-8b86-12bb97331649.png

總結(jié)

本文主要分析了 Redis 的復(fù)制原理,包括復(fù)制過程,數(shù)據(jù)之間的同步,全量復(fù)制的流程,部分復(fù)制的流程,心跳設(shè)計(jì),異步復(fù)制流程。

其中,可以看出,RDB 數(shù)據(jù)之間的同步非常耗時(shí)。所以,Redis 在 2.8 版本退出了類似增量復(fù)制的 psync 命令,當(dāng) Redis 主從直接發(fā)生了網(wǎng)絡(luò)中斷,不會(huì)進(jìn)行全量復(fù)制,而是將數(shù)據(jù)放到緩沖區(qū)(默認(rèn) 1MB)里,在通過主從之間各自維護(hù)復(fù)制 offset 來判斷緩存區(qū)的數(shù)據(jù)是否溢出,如果沒有溢出,只需要發(fā)送緩沖區(qū)數(shù)據(jù)即可,成本很小,反之,則要進(jìn)行全量復(fù)制,因此,控制緩沖區(qū)大小非常的重要。

責(zé)任編輯:lq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7133

    瀏覽量

    89375
  • Redis
    +關(guān)注

    關(guān)注

    0

    文章

    378

    瀏覽量

    10907

原文標(biāo)題:一文深入 Redis 主從復(fù)制的原理詳解,權(quán)威又科學(xué)

文章出處:【微信號:DBDevs,微信公眾號:數(shù)據(jù)分析與開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    華為云 Flexus X 加速 Redis 案例實(shí)踐與詳解

    Redis 加速鏡像,更是為開發(fā)者提供了極大的便利。本文將詳細(xì)介紹如何利用華為云 Flexus X 實(shí)例自帶的 Redis 鏡像,快速部署并配置 Redis,以及通過實(shí)際案例展示其便捷性和高效性。
    的頭像 發(fā)表于 01-23 17:52 ?34次閱讀
    華為云 Flexus X 加速 <b class='flag-5'>Redis</b> 案例實(shí)踐與<b class='flag-5'>詳解</b>

    Redis Cluster之故障轉(zhuǎn)移

    主從復(fù)制中單機(jī)的 QPS(10W)可能無法滿足業(yè)務(wù)需求。 數(shù)據(jù)量的考慮:現(xiàn)有服務(wù)器內(nèi)存不能滿足業(yè)務(wù)數(shù)據(jù)的需要時(shí),單純向服務(wù)器添加內(nèi)存不能
    的頭像 發(fā)表于 01-20 09:21 ?143次閱讀
    <b class='flag-5'>Redis</b> Cluster之故障轉(zhuǎn)移

    云服務(wù)器 Flexus X 實(shí)例,Docker 集成搭建 Redis 集群

    Redis 集群是種分布式的 Redis 解決方案,能夠在多個(gè)節(jié)點(diǎn)之間分片存儲(chǔ)數(shù)據(jù),實(shí)現(xiàn)水平擴(kuò)展和高可用性。與傳統(tǒng)的主從架構(gòu)不同,Redis
    的頭像 發(fā)表于 01-13 13:37 ?91次閱讀
    云服務(wù)器 Flexus X 實(shí)例,Docker 集成搭建 <b class='flag-5'>Redis</b> 集群

    華為云 Flexus 云服務(wù)器 X 實(shí)例:在 openEuler 系統(tǒng)下搭建 MySQL 主從復(fù)制

    前言 本文將介紹如何在華為云 Flexus 云服務(wù)器 X 實(shí)例上,基于 openEuler 系統(tǒng)部署 MySQL 主從復(fù)制。MySQL 作為款高性能且穩(wěn)定的開源關(guān)系型數(shù)據(jù)庫管理系統(tǒng),是眾多
    的頭像 發(fā)表于 12-30 09:11 ?225次閱讀
    華為云 Flexus 云服務(wù)器 X 實(shí)例:在 openEuler 系統(tǒng)下搭建 MySQL <b class='flag-5'>主從復(fù)制</b>

    華為云 Flexus X 輕松實(shí)現(xiàn) Redis 主多從高效部署

    購買實(shí)例、配置 Redis 主從節(jié)點(diǎn),并驗(yàn)證主多從架構(gòu)的正確性。通過實(shí)際操作,您將體驗(yàn)到 Flexus?X 在提升
    的頭像 發(fā)表于 12-27 13:45 ?216次閱讀
    華為云 Flexus X 輕松實(shí)現(xiàn) <b class='flag-5'>Redis</b> <b class='flag-5'>一</b>主多從高效部署

    Redis使用重要的兩個(gè)機(jī)制:Reids持久化和主從復(fù)制

    今天這篇文章,我們起了解 Redis 使用中非常重要的兩個(gè)機(jī)制:Reids 持久化和主從復(fù)制。 我們都知道Redis個(gè)內(nèi)存數(shù)據(jù)庫,在學(xué)
    的頭像 發(fā)表于 12-18 10:33 ?148次閱讀
    <b class='flag-5'>Redis</b>使用重要的兩個(gè)機(jī)制:Reids持久化和<b class='flag-5'>主從復(fù)制</b>

    Redis緩存與Memcached的比較

    Redis和Memcached都是廣泛使用的內(nèi)存數(shù)據(jù)存儲(chǔ)系統(tǒng),它們主要用于提高應(yīng)用程序的性能,通過減少對數(shù)據(jù)庫的直接訪問來加速數(shù)據(jù)檢索。以下是對Redis和Memcached的比較,涵蓋了它們的
    的頭像 發(fā)表于 12-18 09:33 ?207次閱讀

    智慧公交是什么?帶你詳解智慧公交的解決方案!

    智慧公交是什么?帶你詳解智慧公交的解決方案!
    的頭像 發(fā)表于 11-05 12:26 ?368次閱讀
    智慧公交是什么?<b class='flag-5'>一</b><b class='flag-5'>文</b>帶你<b class='flag-5'>詳解</b>智慧公交的解決方案!

    配置MySQL主從復(fù)制和讀寫分離

    配置MySQL主從復(fù)制和讀寫分離
    的頭像 發(fā)表于 10-23 11:44 ?528次閱讀
    配置MySQL<b class='flag-5'>主從復(fù)制</b>和讀寫分離

    富芮坤主從一體多鏈接通信協(xié)議解析

    在先前我們已經(jīng)介紹了富芮坤主從一體多鏈接的概念,現(xiàn)在,我們將深入解析其技術(shù)文檔,為大家提供更詳盡的說明。
    的頭像 發(fā)表于 10-22 10:34 ?312次閱讀
    富芮坤<b class='flag-5'>主從一</b>體多鏈接通信協(xié)議解析

    國產(chǎn)藍(lán)牙模組 | 藍(lán)牙主從一體功能應(yīng)用

    隨著科技快速發(fā)展,藍(lán)牙技術(shù)在各個(gè)行業(yè)應(yīng)用中變得非常廣泛。今天,我們來分享種非常熱門的主從一體藍(lán)牙模塊。我們將對它的模式、概念、應(yīng)用、選購等進(jìn)行探討,讓讀者深入了解這種藍(lán)牙模塊。藍(lán)牙的工作模式藍(lán)牙
    的頭像 發(fā)表于 06-21 08:25 ?568次閱讀
    國產(chǎn)藍(lán)牙模組 | 藍(lán)牙<b class='flag-5'>主從一</b>體功能應(yīng)用

    Redis 開源協(xié)議調(diào)整,我們怎么辦?

    許可,時(shí)間點(diǎn)恰逢剛剛完成最新輪融資,宣布的時(shí)機(jī)耐人尋味。 Redis 協(xié)議調(diào)整,對云計(jì)算廠商的影響 Redis 協(xié)議調(diào)整聽起來可能沒什么,但在開源項(xiàng)目領(lǐng)域是個(gè)大問題。這并不是
    的頭像 發(fā)表于 05-09 22:59 ?459次閱讀
    <b class='flag-5'>Redis</b> 開源協(xié)議調(diào)整,我們怎么辦?

    Redis開源版與Redis企業(yè)版,怎么選用?

    Redis開源版,二者有何不同?該如何選擇?、Redis企業(yè)版Redis企業(yè)版基于開源Redis構(gòu)建,企業(yè)版將開發(fā)人員、架構(gòu)師和DevO
    的頭像 發(fā)表于 04-04 08:04 ?1167次閱讀
    <b class='flag-5'>Redis</b>開源版與<b class='flag-5'>Redis</b>企業(yè)版,怎么選用?

    新版 Redis 不再“開源”,對使用者都有哪些影響?

    2024 年 3 月 20 日,Redis Labs 宣布從 Redis 7.4 開始,將原先比較寬松的 BSD 源碼使用協(xié)議修改為 RSAv2和 SSPLv1協(xié)議。該變化意味著 Redis
    的頭像 發(fā)表于 03-27 22:30 ?528次閱讀
    新版 <b class='flag-5'>Redis</b> 不再“開源”,對使用者都有哪些影響?

    Redis官方搜索引擎來了,性能炸裂!

    RediSearch 是個(gè) Redis 模塊,為 Redis 提供查詢、二級索引和全文搜索功能。
    的頭像 發(fā)表于 02-21 10:01 ?2480次閱讀
    <b class='flag-5'>Redis</b>官方搜索引擎來了,性能炸裂!
    主站蜘蛛池模板: 国产中文视频无码成人精品| 日本色呦呦| 免费国产久久啪在线| 青青热久精品国产亚洲AV无码| 天天影视网网色色欲| 亚洲欧美综合中文| 2022国产精品不卡a| 俄罗斯mm| 精品国产99久久久久久麻豆| 女人高潮了拔出来了她什么感觉| 色中色论坛网站| 永久免费精品精品永久-夜色| gay台湾无套男同志xnxⅹ| 国产亚洲精品第一区香蕉| 蜜臀AV99无码精品国产专区| 香蕉精品国产高清自在自线| 92精品国产成人观看免费| 国产精品日本无码久久一老A| 看黄色片子| 午夜熟女插插XX免费视频| 45分钟做受片免费观看| 国产成人无码精品久久久影院| 久久热最新网站获取3| 色偷偷888欧美精品久久久| 伊人国产视频| 国产69精品久久久久无码麻豆| 久久人妻少妇嫩草AV蜜桃35I| 熟女人妻久久精品AV天堂| 在线观看亚洲免费人成网址 | 亚洲熟女乱色一区二区三区| ⅹxx日本护土| 精品亚洲永久免费精品| 日韩大胆视频| 4388成人| 黄色天堂在线| 十八禁肉动漫无修在线播放| 91综合精品网站久久| 久 久 亚洲 少 妇 无 码| 婷婷久久综合九色综合伊人色| 99视频精品国产免费观看| 久久精品动漫网一区二区|