亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線(xiàn)實(shí)戰(zhàn)洞察。

Redis主從復(fù)制全解析:全量同步、增量同步與PSYNC協(xié)議實(shí)踐

Redis主從復(fù)制全解析:全量同步、增量同步與PSYNC協(xié)議實(shí)踐 1. 先想明白主從模式到底是在解決什么問(wèn)題有一回我和同事排查一個(gè)線(xiàn)上告警從節(jié)點(diǎn)斷了幾十秒重連之后主節(jié)點(diǎn)的 CPU 和帶寬突然一起飆升日志里反復(fù)出現(xiàn)全量數(shù)據(jù)同步的記錄。當(dāng)時(shí)第一反應(yīng)是網(wǎng)絡(luò)出了問(wèn)題但查來(lái)查去根子其實(shí)出在復(fù)制積壓緩沖區(qū)太小斷線(xiàn)期間的增量數(shù)據(jù)已經(jīng)保不住了所以被迫退化成一次完整的全量數(shù)據(jù)同步。那次之后我越來(lái)越覺(jué)得Redis 主從模式不難搭但要把全量數(shù)據(jù)同步和增量數(shù)據(jù)同步這兩套機(jī)制吃透才談得上在故障面前不手忙腳亂。主從模式是 Redis 高可用的地基。你可以先把它理解成一個(gè)“一個(gè)老師帶多個(gè)學(xué)生”的結(jié)構(gòu)主節(jié)點(diǎn)負(fù)責(zé)接收寫(xiě)請(qǐng)求從節(jié)點(diǎn)實(shí)時(shí)跟著主節(jié)點(diǎn)的數(shù)據(jù)走平時(shí)主要承擔(dān)讀請(qǐng)求。這樣做最直接的好處有三個(gè)讀寫(xiě)分離把讀流量分散到多個(gè)從節(jié)點(diǎn)上主節(jié)點(diǎn)壓力變小。數(shù)據(jù)冗余主節(jié)點(diǎn)掛了從節(jié)點(diǎn)手里還有一份完整數(shù)據(jù)能頂上。高可用基礎(chǔ)哨兵模式、集群模式底層都依賴(lài)主從復(fù)制這套數(shù)據(jù)同步機(jī)制。搭建主從的方式也很簡(jiǎn)單無(wú)非兩種。一種是配置文件中寫(xiě)好replicaof指令另一種是在命令行動(dòng)態(tài)執(zhí)行# 在從節(jié)點(diǎn)上執(zhí)行把當(dāng)前實(shí)例變成 master 的從節(jié)點(diǎn) REPLICAOF 10.0.0.11 6379注意命令是REPLICAOF不是老寫(xiě)法SLAVEOF。新版本里雖然SLAVEOF還能用但官方已經(jīng)不推薦了主從這兩個(gè)詞在 Redis 的運(yùn)維語(yǔ)義里正逐步被替換掉。很多初學(xué)者會(huì)有個(gè)疑問(wèn)主從復(fù)制到底是推數(shù)據(jù)還是拉數(shù)據(jù)答案是“拉”。從節(jié)點(diǎn)主動(dòng)找主節(jié)點(diǎn)要數(shù)據(jù)主節(jié)點(diǎn)被動(dòng)響應(yīng)。這個(gè)設(shè)計(jì)很關(guān)鍵因?yàn)槿绻侵鞴?jié)點(diǎn)主動(dòng)推送主節(jié)點(diǎn)還得維護(hù)一張從節(jié)點(diǎn)清單誰(shuí)掉線(xiàn)了、誰(shuí)新加入管理起來(lái)非常麻煩。改成從節(jié)點(diǎn)主動(dòng)拉取之后主節(jié)點(diǎn)只需要在收到請(qǐng)求時(shí)干活整個(gè)鏈路的控制權(quán)就交給了從節(jié)點(diǎn)。另一個(gè)容易誤解的點(diǎn)是主從模式并不保證強(qiáng)一致性。Redis 的復(fù)制默認(rèn)是異步的主節(jié)點(diǎn)執(zhí)行完寫(xiě)命令后就返回客戶(hù)端了不會(huì)等著所有從節(jié)點(diǎn)都確認(rèn)寫(xiě)完。所以從節(jié)點(diǎn)上的數(shù)據(jù)一定比主節(jié)點(diǎn)“慢一點(diǎn)點(diǎn)”這個(gè)滯后是常態(tài)。理解了這一點(diǎn)你再去看全量同步和增量同步的設(shè)計(jì)就會(huì)有更清晰的主線(xiàn)一切努力都是為了縮小這個(gè)滯后窗口同時(shí)讓斷線(xiàn)重連后的追平成本盡可能低。2. 全量同步第一次握手是怎么把整份數(shù)據(jù)搬過(guò)去的2.1 初次建立復(fù)制的入口PSYNC ? -1不管是從零搭建一主一從還是從節(jié)點(diǎn)數(shù)據(jù)已經(jīng)被污染需要重建第一次建立復(fù)制時(shí)從節(jié)點(diǎn)對(duì)主節(jié)點(diǎn)說(shuō)的一句話(huà)永遠(yuǎn)是PSYNC ? -1翻譯成人話(huà)就是“我對(duì)自己要復(fù)制的這段數(shù)據(jù)歷史一無(wú)所知從哪個(gè)偏移量開(kāi)始追我也不知道干脆把我需要的所有數(shù)據(jù)都發(fā)給我吧。”主節(jié)點(diǎn)收到這個(gè)請(qǐng)求之后如果同意全量同步會(huì)回復(fù)FULLRESYNC replid offsetreplid是主節(jié)點(diǎn)當(dāng)前復(fù)制流的身份標(biāo)識(shí)你可以把它理解成這部“數(shù)據(jù)連續(xù)劇”的劇目編號(hào)offset是主節(jié)點(diǎn)當(dāng)前已經(jīng)寫(xiě)到的字節(jié)位置相當(dāng)于播放進(jìn)度。拿到這兩個(gè)信息之后從節(jié)點(diǎn)才正式開(kāi)始全量同步。這里有個(gè)值得拆解的細(xì)節(jié)為什么第一次同步必須用全量而不是把主節(jié)點(diǎn)上的每條寫(xiě)命令都重新發(fā)給從節(jié)點(diǎn)執(zhí)行一遍原因很樸素——主節(jié)點(diǎn)可能已經(jīng)跑了幾個(gè)月寫(xiě)操作記錄太多了如果從頭開(kāi)始逐條“補(bǔ)作業(yè)”網(wǎng)絡(luò)開(kāi)銷(xiāo)和耗時(shí)都不可控。而 RDB 快照把當(dāng)前所有數(shù)據(jù)壓縮成一個(gè)文件一次性發(fā)過(guò)去雖然過(guò)程重但終點(diǎn)明確。2.2 全量同步的完整時(shí)序BGSAVE、積壓緩沖區(qū)、清空裝載全量同步不是主節(jié)點(diǎn)一個(gè)BGSAVE然后把文件丟給從節(jié)點(diǎn)就完事兒的中間藏著好幾個(gè)容易忽略的環(huán)節(jié)。我把完整流程拆開(kāi)來(lái)看從節(jié)點(diǎn)發(fā)送PSYNC ? -1主節(jié)點(diǎn)決定走全量同步返回FULLRESYNC。主節(jié)點(diǎn)執(zhí)行BGSAVE生成 RDB 快照文件。在BGSAVE執(zhí)行期間主節(jié)點(diǎn)依然對(duì)外服務(wù)所有新的寫(xiě)命令會(huì)被同時(shí)記錄到復(fù)制積壓緩沖區(qū)replication backlog里。RDB 文件生成完畢主節(jié)點(diǎn)把文件發(fā)給從節(jié)點(diǎn)。從節(jié)點(diǎn)收到 RDB 之前會(huì)先把自己的舊數(shù)據(jù)清空然后加載 RDB 文件。RDB 發(fā)送結(jié)束后主節(jié)點(diǎn)再把積壓緩沖區(qū)里這段時(shí)間積攢的寫(xiě)命令補(bǔ)發(fā)給從節(jié)點(diǎn)。從節(jié)點(diǎn)執(zhí)行完這些補(bǔ)發(fā)的命令主從數(shù)據(jù)追平進(jìn)入后續(xù)的增量同步階段。注意第 5 步“清空舊數(shù)據(jù)”不是在拿到 RDB 之前就做的。從節(jié)點(diǎn)會(huì)先把舊數(shù)據(jù)留著等 RDB 文件完整接收且校驗(yàn)通過(guò)后再清空再加載這樣即使 RDB 傳壞了至少?gòu)墓?jié)點(diǎn)還能保留原來(lái)的數(shù)據(jù)不至于兩邊都變成空殼。這里就是全量同步最容易出性能問(wèn)題的環(huán)節(jié)了。主節(jié)點(diǎn)執(zhí)行BGSAVE需要 fork 出一個(gè)子進(jìn)程來(lái)生成快照。fork 本身很快但如果實(shí)例里堆積了大量大 key子進(jìn)程在生成 RDB 時(shí)會(huì)觸發(fā)內(nèi)存頁(yè)的復(fù)制Copy-On-Write內(nèi)存和 CPU 都會(huì)有一波明顯消耗。我在生產(chǎn)環(huán)境里見(jiàn)過(guò)上百 GB 的實(shí)例做全量同步主節(jié)點(diǎn)的瞬時(shí) CPU 直接飆到多核打滿(mǎn)耗時(shí)是以分鐘計(jì)的。所以 Redis 提供了一些調(diào)節(jié)閥比如# 開(kāi)啟無(wú)盤(pán)復(fù)制主節(jié)點(diǎn)不生成 RDB 文件落盤(pán)通過(guò) socket 直接發(fā)給從節(jié)點(diǎn) config set repl-diskless-sync yes # 等待多個(gè)從節(jié)點(diǎn)一起請(qǐng)求延遲幾秒后只生成一次 RDB服務(wù)所有從節(jié)點(diǎn) config set repl-diskless-sync-delay 5無(wú)盤(pán)復(fù)制適合主節(jié)點(diǎn)磁盤(pán) IO 比較吃緊、但網(wǎng)卡帶寬還寬裕的場(chǎng)景。如果從節(jié)點(diǎn)很多我會(huì)建議開(kāi)啟repl-diskless-sync-delay讓多個(gè)從節(jié)點(diǎn)集合到一起共享一次 RDB 生成結(jié)果避免每個(gè)從節(jié)點(diǎn)各 fork 一次。2.3 從節(jié)點(diǎn)裝載 RDB 時(shí)是阻塞的別忽視從節(jié)點(diǎn)加載 RDB 文件的過(guò)程是阻塞的。也就是說(shuō)加載期間從節(jié)點(diǎn)沒(méi)法對(duì)外提供讀服務(wù)INFO replication里會(huì)看到master_link_status:down同時(shí)在日志里出現(xiàn)SYNC with master in progress。這個(gè)狀態(tài)持續(xù)多久取決于 RDB 文件的大小和機(jī)器的磁盤(pán)速度。如果你的業(yè)務(wù)對(duì)從節(jié)點(diǎn)的讀可用性要求比較高可以關(guān)注一下 Redis 7 引入的repl-diskless-load配置# 可選on-empty-db / swapdb降低裝載 RDB 期間的阻塞影響 config set repl-diskless-load on-empty-db這個(gè)配置的大體思路是從節(jié)點(diǎn)先把新 RDB 數(shù)據(jù)加載到臨時(shí)內(nèi)存再切換視圖讓舊數(shù)據(jù)盡可能多服務(wù)一會(huì)兒。不過(guò)它也有自己的副作用比如臨時(shí)內(nèi)存消耗會(huì)翻倍。所以要不要開(kāi)還得看你的內(nèi)存余量不能照單全收。再補(bǔ)一個(gè)容易踩的坑如果從節(jié)點(diǎn)配置了 AOF 持久化那么從節(jié)點(diǎn)在完成 RDB 裝載之后還會(huì)基于新數(shù)據(jù)集做一次 AOF 重寫(xiě)。換句話(huà)說(shuō)磁盤(pán)上會(huì)先出現(xiàn)短暫的“舊 AOF 和文件新內(nèi)容并存”的狀態(tài)如果你監(jiān)控的是磁盤(pán)空間這段時(shí)間要做好心理準(zhǔn)備別把磁盤(pán)告警閾值卡得太死。3. 增量同步復(fù)制偏移量、積壓緩沖區(qū)與命令傳播3.1 復(fù)制的“里程表”offset 是怎么記錄進(jìn)度的全量同步結(jié)束之后主從之間就進(jìn)入增量數(shù)據(jù)同步階段也叫命令傳播階段。這時(shí)候機(jī)制變得輕量很多主節(jié)點(diǎn)每執(zhí)行一條寫(xiě)命令除了寫(xiě)自己的內(nèi)存數(shù)據(jù)還會(huì)把這條命令追加到復(fù)制積壓緩沖區(qū)同時(shí)把自身的master_repl_offset往后推進(jìn)。從節(jié)點(diǎn)每收到一條命令并執(zhí)行完也會(huì)把自己這邊的slave_repl_offset往前推進(jìn)。也就是說(shuō)主節(jié)點(diǎn)和從節(jié)點(diǎn)各自維護(hù)著一個(gè)“進(jìn)度條”。雖然它們都是朝著同一個(gè)方向前進(jìn)但異步復(fù)制決定了這兩個(gè)進(jìn)度條不可能完全同步一定存在一個(gè)差值這個(gè)差值就是我前面提到的數(shù)據(jù)滯后量。你可以把復(fù)制流想象成一條兩端不斷增長(zhǎng)的長(zhǎng)河offset就是河上的里程標(biāo)。主節(jié)點(diǎn)在上游從節(jié)點(diǎn)在下游河水每流一米兩邊的里程標(biāo)都會(huì)更新。這里的“河水”就是命令字節(jié)流每個(gè)字節(jié)都有自己唯一的偏移量。命令傳播階段其實(shí)就兩件事主節(jié)點(diǎn)往“河”里注入新的命令流并記錄master_repl_offset。從節(jié)點(diǎn)從“河”里消費(fèi)命令流執(zhí)行后上報(bào)自己的slave_repl_offset。從節(jié)點(diǎn)會(huì)每秒上報(bào)一次自己的offset通過(guò)REPLCONF ACK offset命令告訴主節(jié)點(diǎn)“我追到哪兒了”。主節(jié)點(diǎn)收到之后不但能算出滯后量還能判斷這個(gè)從節(jié)點(diǎn)是否還活著——如果超過(guò)timeout時(shí)間沒(méi)收到 ACK主節(jié)點(diǎn)就會(huì)認(rèn)為這個(gè)從節(jié)點(diǎn)已經(jīng)斷開(kāi)了。3.2 斷線(xiàn)重連后主節(jié)點(diǎn)怎么決定從哪接著傳從節(jié)點(diǎn)斷線(xiàn)之后重連時(shí)發(fā)送的就不再是PSYNC ? -1了而是PSYNC replid offset意思變成“我?guī)е洗蔚纳矸莺瓦M(jìn)度來(lái)了你看看能不能從斷點(diǎn)接著給我傳。”主節(jié)點(diǎn)收到這個(gè)請(qǐng)求后會(huì)做兩個(gè)判斷第一這個(gè)replid是不是我當(dāng)前的身份第二這個(gè)offset是否還落在我的復(fù)制積壓緩沖區(qū)里。如果兩個(gè)條件都滿(mǎn)足主節(jié)點(diǎn)返回CONTINUE然后從offset對(duì)應(yīng)的位置開(kāi)始把后面的命令流繼續(xù)發(fā)給從節(jié)點(diǎn)。這個(gè)過(guò)程就是增量數(shù)據(jù)同步也就是官方文檔里說(shuō)的“部分重同步”partial resynchronization。代價(jià)非常小網(wǎng)絡(luò)開(kāi)銷(xiāo)只等于斷線(xiàn)期間積攢的那部分命令。如果條件不滿(mǎn)足主節(jié)點(diǎn)返回FULLRESYNC整個(gè)流程退回全量同步。具體來(lái)說(shuō)以下兩種情況最常見(jiàn)從節(jié)點(diǎn)發(fā)送的replid和主節(jié)點(diǎn)當(dāng)前replid對(duì)不上。從節(jié)點(diǎn)發(fā)送的offset太舊了已經(jīng)不在積壓緩沖區(qū)里主節(jié)點(diǎn)找不到那個(gè)位置的數(shù)據(jù)了。3.3 backlog 大小是增量同步的命門(mén)對(duì)象積壓緩沖區(qū)的官方配置名是repl-backlog-size默認(rèn)只有 1MB。1MB 聽(tīng)著不小但放在寫(xiě)流量大的主節(jié)點(diǎn)上可能不到一分鐘就被環(huán)形緩沖區(qū)覆蓋掉了。為什么說(shuō)是環(huán)形緩沖區(qū)因?yàn)樗拇鎯?chǔ)區(qū)域是固定大小循環(huán)使用的。新命令不斷寫(xiě)入最老的命令就被頂?shù)簟V鞴?jié)點(diǎn)只會(huì)保留最近 N 字節(jié)的命令流。舉個(gè)例子復(fù)制積壓緩沖區(qū)當(dāng)前范圍是 offset 10000 到 11024。從節(jié)點(diǎn)重連后上報(bào) offset 10500落在這個(gè)區(qū)間內(nèi)可以增量同步。如果從節(jié)點(diǎn)上報(bào) offset 9900說(shuō)明它需要的命令已經(jīng)有一部分被頂?shù)袅酥荒苋客?。這個(gè)例子能直觀看出backlog 越大能容忍的斷線(xiàn)時(shí)間越長(zhǎng)增量同步的成功率越高。生產(chǎn)環(huán)境里怎么定這個(gè)大小我一般會(huì)先做個(gè)粗估算repl-backlog-size 主節(jié)點(diǎn)每秒寫(xiě)入量(bytes) x 預(yù)期最長(zhǎng)斷線(xiàn)時(shí)間(秒)比如主節(jié)點(diǎn)平均每秒產(chǎn)生 2MB 寫(xiě)命令我希望從節(jié)點(diǎn)斷線(xiàn) 120 秒后重連還能走增量同步那就得給到 256MB 以上。注意這里算的是寫(xiě)命令的字節(jié)量不是業(yè)務(wù)寫(xiě)入的數(shù)據(jù)量。一條更新 100 字節(jié)字段的命令在復(fù)制流里可能也要占幾十到上百字節(jié)所以用粗略值乘個(gè) 1.5 系數(shù)更穩(wěn)妥。設(shè)置方式config set repl-backlog-size 268435456如果實(shí)例已經(jīng)運(yùn)行一段時(shí)間了Redis 會(huì)直接從當(dāng)前offset開(kāi)始填充新的環(huán)形區(qū)間不需要重啟。生效后可以通過(guò)INFO replication里的repl_backlog_active和repl_backlog_histlen確認(rèn)。我踩過(guò)的一個(gè)真實(shí)教訓(xùn)是某業(yè)務(wù)從節(jié)點(diǎn)數(shù)量有七八個(gè)平時(shí)增量同步都正常但只要某個(gè)從節(jié)點(diǎn)所在的網(wǎng)絡(luò)偶爾抖動(dòng)超過(guò)一兩分鐘重連后就必然是FULLRESYNC。后來(lái)把repl-backlog-size從默認(rèn) 1MB 調(diào)到 128MB復(fù)制風(fēng)暴立刻消失。查日志的時(shí)候看到的關(guān)鍵字一般是Trying a partial resynchronization (request ...) Full resync requested前面的說(shuō)明在嘗試增量后面說(shuō)明失敗了、退化成全量。如果你在日志里看到這兩種狀態(tài)交替出現(xiàn)第一反應(yīng)就應(yīng)該是去看 backlog 大小而不是去懷疑網(wǎng)絡(luò)。4. PSYNC 協(xié)議演進(jìn)斷點(diǎn)續(xù)傳能力是怎樣一步步變強(qiáng)的4.1 SYNC 時(shí)代的無(wú)奈每次重連都是一次全量現(xiàn)在大家接觸 Redis 基本都是 4.0 以上版本PSYNC 已經(jīng)是默認(rèn)行為。但如果你翻過(guò)老代碼或者看過(guò)更早的運(yùn)維文檔會(huì)發(fā)現(xiàn)最初的復(fù)制協(xié)議只有一個(gè)命令SYNC。SYNC的邏輯非常簡(jiǎn)單粗暴從節(jié)點(diǎn)一發(fā)SYNC主節(jié)點(diǎn)就BGSAVE生成 RDB 發(fā)過(guò)去。在這個(gè)協(xié)議下從節(jié)點(diǎn)只要斷開(kāi)重連不管斷了幾秒、缺了多少數(shù)據(jù)主節(jié)點(diǎn)都得重新生成一份完整快照再全量發(fā)一遍。那個(gè)時(shí)期的 Redis從節(jié)點(diǎn)數(shù)量稍微多一點(diǎn)只要趕上一次網(wǎng)絡(luò)抖動(dòng)就可能產(chǎn)生連鎖反應(yīng)每個(gè)從節(jié)點(diǎn)都觸發(fā)一次全量同步每個(gè)全量同步都會(huì)讓主節(jié)點(diǎn) fork 并發(fā)送 RDB主節(jié)點(diǎn) CPU、內(nèi)存、帶寬同時(shí)被打滿(mǎn)。可以說(shuō)SYNC協(xié)議是把“簡(jiǎn)單”寫(xiě)在了臉上代價(jià)全留給了運(yùn)維。4.2 PSYNC 與 replid第一代斷點(diǎn)續(xù)傳是怎么實(shí)現(xiàn)的后來(lái) Redis 引入了PSYNC核心變化就是給復(fù)制流增加了兩個(gè)“坐標(biāo)”replid和offset。從節(jié)點(diǎn)可以在斷線(xiàn)重連時(shí)帶上自己上次記住的坐標(biāo)主節(jié)點(diǎn)只要發(fā)現(xiàn)自己手里還留著這段數(shù)據(jù)就能從斷點(diǎn)繼續(xù)傳不必每次都全量。這背后的實(shí)現(xiàn)就是我前面講的復(fù)制積壓緩沖區(qū)??梢哉f(shuō)PSYNC協(xié)議的價(jià)值和 backlog 是綁定的沒(méi)有 backlog 就沒(méi)有斷點(diǎn)續(xù)傳。平時(shí)用INFO replication能看到主節(jié)點(diǎn)上這么一行master_replid:8e0d1f3c...這就是當(dāng)前復(fù)制流的身份 ID。只要主節(jié)點(diǎn)維護(hù)的這個(gè) ID 不變從節(jié)點(diǎn)帶著舊的replid和offset回來(lái)就有機(jī)會(huì)繼續(xù)增量同步。4.3 PSYNC2主從切換后不再?gòu)?qiáng)制全量但第一代 PSYNC 有一個(gè)明顯的硬傷一旦發(fā)生主從切換原本的從節(jié)點(diǎn)被提升為新主節(jié)點(diǎn)它自己的replid是全新的原來(lái)那批從節(jié)點(diǎn)帶著舊主節(jié)點(diǎn)的replid再連過(guò)來(lái)兩邊身份對(duì)不上統(tǒng)統(tǒng)退化為全量同步。設(shè)想一個(gè)場(chǎng)景A 是主節(jié)點(diǎn)B 和 C 是 A 的從節(jié)點(diǎn)。某天 A 宕機(jī)哨兵把 B 提升為新主節(jié)點(diǎn)。C 節(jié)點(diǎn)還在正常運(yùn)行它手里的數(shù)據(jù)就差 A 掛掉那一刻沒(méi)來(lái)得及同步的一小段而已。理論上B 和 C 都從 A 復(fù)制了一份幾乎相同的數(shù)據(jù)C 連到 B 時(shí)完全有資格做增量同步。但舊協(xié)議不認(rèn)賬C 會(huì)被迫從頭開(kāi)始全量拉一次 B 的數(shù)據(jù)浪費(fèi)大量帶寬。第二代 PSYNC常被稱(chēng)為 PSYNC2解決的就是這個(gè)問(wèn)題。它引入了一個(gè)replid2的概念當(dāng)一個(gè)從節(jié)點(diǎn)被提升為主節(jié)點(diǎn)時(shí)它會(huì)保留自己作為從節(jié)點(diǎn)時(shí)期的主節(jié)點(diǎn)replid把它存到replid2里。C 節(jié)點(diǎn)再連過(guò)來(lái)時(shí)B 會(huì)檢查你的replid雖然跟我不一樣但和我保存的replid2匹配而且你的offset還在我的 backlog 范圍內(nèi)那就允許增量同步。這樣一來(lái)主從切換后的大部分從節(jié)點(diǎn)都能繼續(xù)走增量數(shù)據(jù)同步只有極少情況下才需要全量。這在大型集群里的收益非常明顯少了全量同步等于少了 N 次 RDB 文件傳輸主節(jié)點(diǎn)的 fork 壓力和網(wǎng)絡(luò)壓力都大大緩解??梢杂靡粡埿”戆讶鷧f(xié)議的區(qū)別說(shuō)清楚能力SYNCPSYNCPSYNC2初次全量同步支持支持支持?jǐn)嗑€(xiàn)重連續(xù)傳不支持支持支持主從切換后續(xù)傳不支持不支持支持需要 backlog不需要需要需要5. 主從復(fù)制鏈路中的坑與排查經(jīng)驗(yàn)5.1 反反復(fù)復(fù)的全量同步先別怪網(wǎng)絡(luò)如果你的從節(jié)點(diǎn)日志里一直出現(xiàn)“先嘗試部分重同步、緊接著又變成全量同步”的狀態(tài)第一排查項(xiàng)一定是 backlog 容量。環(huán)型緩沖區(qū)的特性決定了它只認(rèn)“最近發(fā)過(guò)多少字節(jié)的命令”不認(rèn)“你斷線(xiàn)了多長(zhǎng)時(shí)間”。哪怕只斷了幾秒只要這幾秒內(nèi)主節(jié)點(diǎn)的寫(xiě)命令字節(jié)量超過(guò)了 backlog 的上限重連照樣得全量。排查步驟也不復(fù)雜# 主節(jié)點(diǎn)上查看 backlog 實(shí)際使用情況 redis-cli info replication | grep -E backlog|offset重點(diǎn)看幾個(gè)字段master_repl_offset主節(jié)點(diǎn)當(dāng)前寫(xiě)入進(jìn)度。slave_repl_offset從節(jié)點(diǎn)當(dāng)前進(jìn)度。repl_backlog_histlenbacklog 里目前保存的有效命令流長(zhǎng)度。如果你的repl_backlog_histlen已經(jīng)等于repl-backlog-size說(shuō)明環(huán)形緩沖已經(jīng)被寫(xiě)滿(mǎn)里面的內(nèi)容時(shí)刻在滾動(dòng)淘汰。這種狀態(tài)下斷線(xiàn)重連增量同步的成功率非常低。解決辦法也很直接把 backlog 調(diào)大同時(shí)結(jié)合業(yè)務(wù)寫(xiě)流量估算出合理值。調(diào)整完不是結(jié)束還應(yīng)該盯兩輪第一輪觀察斷線(xiàn)重連的日志確認(rèn)出現(xiàn)的是CONTINUE而不是FULLRESYNC第二輪觀察主節(jié)點(diǎn) CPU確認(rèn)沒(méi)有因?yàn)轭l繁全量同步而持續(xù)走高。5.2 過(guò)期 Key 不會(huì)在從節(jié)點(diǎn)上主動(dòng)刪除這是個(gè)非常經(jīng)典的主從一致性細(xì)節(jié)。在主從復(fù)制中從節(jié)點(diǎn)默認(rèn)不會(huì)主動(dòng)刪除過(guò)期的 key。聽(tīng)起來(lái)是不是反直覺(jué)如果從節(jié)點(diǎn)自己能判斷 key 過(guò)期直接刪掉不就行了為什么還要等主節(jié)點(diǎn)通知原因在于兩個(gè)實(shí)例的“時(shí)間感”不完全一致如果在同一秒內(nèi)主節(jié)點(diǎn)認(rèn)為 key 過(guò)期、從節(jié)點(diǎn)認(rèn)為還沒(méi)過(guò)期兩邊刪除時(shí)機(jī)不一致就會(huì)導(dǎo)致數(shù)據(jù)分叉。所以 Redis 的策略是過(guò)期刪除的決策權(quán)只在主節(jié)點(diǎn)。主節(jié)點(diǎn)的處理方式有兩類(lèi)惰性刪除客戶(hù)端請(qǐng)求某個(gè) key 時(shí)發(fā)現(xiàn)已經(jīng)過(guò)期直接刪除并返回空。定期刪除后臺(tái)周期掃描一批 key刪除其中過(guò)期的。不管是哪種方式刪除主節(jié)點(diǎn)都會(huì)把刪除行為轉(zhuǎn)成一條DEL命令通過(guò)復(fù)制流轉(zhuǎn)發(fā)給從節(jié)點(diǎn)。從節(jié)點(diǎn)收到這條DEL后才會(huì)真正把本地這個(gè) key 刪掉。這里有個(gè)副作用從節(jié)點(diǎn)在收到主節(jié)點(diǎn)的刪除命令之前如果被讀到了那個(gè)邏輯上已經(jīng)過(guò)期的 key會(huì)發(fā)生什么按我的實(shí)測(cè)經(jīng)驗(yàn)Redis 從節(jié)點(diǎn)會(huì)直接把這個(gè) key 當(dāng)不存在處理返回空結(jié)果但底層數(shù)據(jù)仍然占著內(nèi)存。也就是說(shuō)從節(jié)點(diǎn)會(huì)“看不到”這個(gè) key但內(nèi)存遲遲不釋放。如果你發(fā)現(xiàn)從節(jié)點(diǎn)的內(nèi)存占用長(zhǎng)時(shí)間高于預(yù)期而大 key 掃描也沒(méi)掃出什么東西可以懷疑是過(guò)期 key 堆積。解決辦法并不復(fù)雜檢查主從復(fù)制是否正常確認(rèn)沒(méi)有積壓很久的延遲因?yàn)閺墓?jié)點(diǎn)必須追平主節(jié)點(diǎn)、消化掉積壓的 DEL 命令才會(huì)把這些過(guò)期 key 清空。另外要注意從節(jié)點(diǎn)一定要開(kāi)啟只讀模式config set replica-read-only yes如果有人在從節(jié)點(diǎn)上手動(dòng)寫(xiě)入或修改數(shù)據(jù)主從數(shù)據(jù)立刻就會(huì)分叉而且很難追回來(lái)。這類(lèi)問(wèn)題往往比 backlog 問(wèn)題更隱蔽因?yàn)闃I(yè)務(wù)表現(xiàn)只是一些偶發(fā)的數(shù)據(jù)“對(duì)不上”。5.3 復(fù)制風(fēng)暴與從節(jié)點(diǎn)級(jí)聯(lián)控制所謂復(fù)制風(fēng)暴是指短時(shí)間內(nèi)大量從節(jié)點(diǎn)同時(shí)觸發(fā)全量同步導(dǎo)致主節(jié)點(diǎn)資源被沖垮。典型誘因有兩種一個(gè)是主節(jié)點(diǎn)重啟或切換導(dǎo)致所有從節(jié)點(diǎn)同時(shí)掉線(xiàn)再重連另一個(gè)是從節(jié)點(diǎn)全網(wǎng)段重啟全部在同一時(shí)刻重連主節(jié)點(diǎn)。應(yīng)對(duì)思路有幾個(gè)我按優(yōu)先級(jí)說(shuō)調(diào)大 backlog讓盡量多的斷線(xiàn)重連走增量同步。這是最便宜、最基礎(chǔ)的措施。錯(cuò)峰重連靠運(yùn)維工具控制從節(jié)點(diǎn)分批重啟不要一把梭。用鏈?zhǔn)綇?fù)制即主-從-從結(jié)構(gòu)。中間的從節(jié)點(diǎn)既當(dāng)從節(jié)點(diǎn)又當(dāng)下一級(jí)的主節(jié)點(diǎn)減輕頂層主節(jié)點(diǎn)的壓力。開(kāi)啟無(wú)盤(pán)復(fù)制并設(shè)置 delay多個(gè)從節(jié)點(diǎn)可以共享一次 RDB 生成結(jié)果。我自己的傾向是從節(jié)點(diǎn)數(shù)量超過(guò) 5 個(gè)的架構(gòu)鏈?zhǔn)綇?fù)制是值得認(rèn)真考慮的尤其是跨機(jī)房場(chǎng)景??鐧C(jī)房帶寬本來(lái)就緊張如果每臺(tái)從節(jié)點(diǎn)都直接從主節(jié)點(diǎn)拉全量 RDB那點(diǎn)帶寬瞬間就會(huì)被吃光。中間建一層“中繼從節(jié)點(diǎn)”讓它在某個(gè)機(jī)房?jī)?nèi)再向下一層復(fù)制能顯著降低跨機(jī)房的復(fù)制流量。需要注意鏈?zhǔn)綇?fù)制會(huì)讓最下端從節(jié)點(diǎn)的數(shù)據(jù)滯后時(shí)間變大因?yàn)槊钜?jīng)過(guò)兩次轉(zhuǎn)發(fā)。這屬于典型的時(shí)間換帶寬是不是劃算得結(jié)合業(yè)務(wù)對(duì)讀取延遲的要求來(lái)權(quán)衡。5.4 平時(shí)怎么判斷主從狀態(tài)是健康的我養(yǎng)成了一個(gè)習(xí)慣每次接手一套 Redis 環(huán)境第一件事先把INFO replication的輸出完整看一遍。重點(diǎn)關(guān)注這么幾項(xiàng)role是主還是從別搞反了。master_link_status:up復(fù)制鏈路是否正常。狀態(tài)不是 up 就得馬上看日志。master_sync_in_progress:0是否正在全量同步。長(zhǎng)時(shí)間為 1 說(shuō)明有大 RDB 在傳。slave_repl_offset和主節(jié)點(diǎn)的master_repl_offset兩者差值是不是在合理范圍內(nèi)長(zhǎng)期偏大就說(shuō)明從節(jié)點(diǎn)追不上。master_last_io_seconds_ago最后一次和主節(jié)點(diǎn)通信是在多久之前超過(guò)timeout值就要警惕掉線(xiàn)。這里還有一個(gè)經(jīng)驗(yàn)之談從節(jié)點(diǎn)追不上主節(jié)點(diǎn)不一定是網(wǎng)絡(luò)慢也可能是主節(jié)點(diǎn)發(fā)給它的命令本身就重。比如一條命令操作大集合的幾百個(gè)元素復(fù)制流里這條命令的體積很大從節(jié)點(diǎn)執(zhí)行時(shí)又會(huì)觸發(fā)內(nèi)存分配和哈希表擴(kuò)容耗時(shí)遠(yuǎn)超主節(jié)點(diǎn)。這種情況下光是調(diào)大 backlog 沒(méi)用還得優(yōu)化業(yè)務(wù)側(cè)的寫(xiě)命令模式比如把大集合的批量寫(xiě)拆開(kāi)。最后分享一條我個(gè)人反復(fù)驗(yàn)證過(guò)的經(jīng)驗(yàn)當(dāng)復(fù)制鏈路出現(xiàn)詭異問(wèn)題時(shí)不要急著改配置。先把redis-cli info replication的快照保存一份再把主從兩端的日志級(jí)別臨時(shí)調(diào)到 debug復(fù)現(xiàn)一次問(wèn)題把MASTER - REPLICA sync相關(guān)日志完整收集起來(lái)。八成以上的復(fù)制問(wèn)題從這幾行日志里就能看出真正的走向剩下的兩成才輪到網(wǎng)絡(luò)抓包和內(nèi)核參數(shù)排查。這套笨辦法幫我在好幾次故障里省下了大量半夜時(shí)間也建議你下次遇到類(lèi)似問(wèn)題時(shí)先試試。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
中文乱码字幕观看视频| 网友自拍第1页| 骚妻少妇精品性色无码四色A V| 99热一区二区三区四区| 激情综合网五月婷婷五月天| 国产熟女一区二区丰满| 99re免费视频精品全部| 久久黄黄| 亚洲资源一区| 天天插天天射| 超碰97久| 久久婷婷精品| 国产一级高清免费观看| 九九亚洲| 日本精品九九九| 超碰97人人cao| 亚洲激情四射| 亚洲国产成人综合碰碰三级经典| 成人黑料社久久| 伊人在线大香蕉视频久久| 亚洲男人久久综合天堂| 岛国小电影| 日韩本不卡视频在线观看 | 色色丁香| 94色色电影网| 久久五月份| 日日AAvv| 婷婷五月花| 久久原创中文| 日韩免费av片高清无码| 按摩中文字幕| 国产中出内射一区二区| 男人久久精品| 免费看A片毛毛片在线播| 亚洲激情色片| 伊人久久大香大香线蕉中文| 国内精品久9| 天天综合网日韩7799| 日日黄色三级网站| 美國A片| 人妻免费观看| 看日韩操逼| 久久久久深夜无码| 五月天色图| 超碰九7| 殴美,日韩国产伦精品| 在线洲亚线| 婷婷亚洲综合| 国产高清自拍视频| 97久久精品亚洲中六字幕| 亚洲色婷婷久久91| 蜜臀网址在线| 天天摸,夜夜摸| 大但人体久久久久| 麻豆久久久一区二区| 国产精品美女| 91挑色欧美| 久久精品高清AV| 亚洲国产精品久久久男人的天堂| 一类无码操逼视频| 97人人夜| 日本一区二区电影网站| 午夜一区二区三区国产| 久啪| 亚洲另类在线观看| 亚洲欧美日韩免费观看| 人妻素股| 蜜色网色哟哟| 国产 三级自拍| 日本一卡二区在线| 男人天堂久久日韩| 欧美极度丰满熟妇hd| 亚洲色图亚洲| 久久久久96| 婷婷三区| 日韩一级片| 一区二区乱码福利| 97爱啪| 国产福利第一视频| 中国农村熟妇毛片视频| 亚洲性刺激| 成人精品视频一区二区| 俺去俺来也在线www| 欧美亚洲系列| 亚洲性猛交| 色鬼在线综合| 精品一区二区三区丰满熟女-亚洲欧美一区| 日韩欧美麻豆大片| 青草香蕉网| 密臀AV在线| 黄资源| 综合九九| av网站免费线看| 粉嫩不卡一区二区性爱| 日产操逼| 综合色图区| 91美女中出| 色婷婷在线视频| 99后入| 97视频在线播放| 久久久久久69国产一区二区| 婷婷成人五月天| 日韩中文字幕av在线播放| 熟女熟妇一区二区三四区| 一个人免费视频观看在线WWW| 9l视频自拍9l九色成人| 国产白领连续中出在线观看| 九九九九免费高| 五月丁香六月综合缴清无码 | 亚洲欧美另类图片| 久久97超碰| 欧美成人一区二区三区在线播放 | 秋霞一集毛片观看| 五月婷婷六月激情| 97任你吞精| 亚洲深夜福利| 女性91网站| av在线播放国产一区| 极品另类| 1人人看人人摸人人操| 在线视频一区二区传媒| 翔田千里A片一区二区| 天天日天天插| 欧美日本成人一区二区| 97久久久精品| 国产精品爽爽va在线观看98| 一本久道久久综合狠狠爱一密臀精| 成年女人一区| 大香蕉乱级| 婷婷综合视频| 亚洲国产尤物yw在线观看| 97 九色| 影音先锋视频在线| 成人性生活高清视频在线播放| av九九| 国内一区二区免费| av线电影| 97WW精品| 丝袜美腿制服人妻二区中文字幕| 黄片aaaaa一区| 男人久久精品| 91操人| 日本视频一区二区三区| 韩国毛片一区二区三区| 亚洲 中文 女同| 国产高清在线观看欧美| 超碰中文字幕人妻草一区| 熟妇亚洲一区二区三区| 久久精品视频久久久| 成人 日韩欧美一区| 色五月综合| 婷婷操逼| 亚洲丝袜色图| 天天操熟妇| 人妻精品一区一区三区蜜桃91| 超碰人妻中文在线| AV男人天堂网| 男人的天堂免费| 欧美翘臀视频网站一区二区三区| 欧美色宗合| 91欧| AⅤ片水多多| 天美传媒AV在线播放| 天美av在线| 亚洲爽图| 久久精品国产亚洲AV无码电影| 亚洲成人性爱在线观看| 六月色婷婷| 日韩亚洲美女一区久久| 91国产在线精品| www.91视频网| 国产操偷| 熟女一区二区三区| 国产精品69久久久久孕妇欧美 | 日本国产欧美高清在线| 色蜜AV| 超碰97最新人妻| 欧美激情内射| 亚洲色图自拍| 五月亭亭六月丁香| 九热视频| 国产欧美一级在线观看| 肉嘟嘟www视频在线观看高清| 久久午夜鲁丝片| 最新制服中文第一页| 久草精品国产蜜臀| AV久日| 国产四虎在线| 99九九精品| 日本天天操| 国产精品久久久无码AV网站| 成人av免费观看| 熟妇在线视频一区二区| 日韩中文字幕2020| 久操视频免费观看| 日本黄色XXX| 婷婷香蕉欧美在线一区二区三区| 97在线免费看| 98福利在线视频| 久久久久久九九九九九| 伊人影院日本| 国产亚州精品美女久久久免费| 26uuu成人影片| 乱伦图av| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 人人看人人插| 日韩精品一区二区三区四虎影视| 欧美激情 日韩精品| 97精品97| 91丝袜视频在线观看| 色偷综合| 九九英色视频| 中文字幕人妻丝袜乱一区三区| 内射小黄片| 久久思思热| 国产女人极品高潮毛片| 大香蕉碰| 一区二区不卡| 国产黄a三级三级三级av在线看| 六月天婷婷| 91熟女.com| 日本精品中文字幕视频| 一区久久久二区| 色香网| 性久久久| 日本性爱少妇| 亚洲色图加勒比| 综合亚洲欧美| 精品久久久久久中文| 操人91| 精品国产乱码久久久| 八戒午夜福利理论片| 婷婷91| 久久久久96| 免费超碰97在线观看| 色欲Av人妻精品一区二| 欧美无圣光在线| 操www| 99精品视频在线观看| 天天网综合| 性做久久久久久免费观看软件| 色优久久| 国产又粗又长又大的视频| 亚洲精品a人片在线观看视| 欧美性爱十八禁| 玖玖综合网| 超碰97久久| 欧美熟妇乱码在线一区| 国产成年女黄特黄| 日韩天堂av电影在线观看| 午夜精品久久久久久久第一页按摩| 久久久免费一级黄片| 欧美天天弄| 好爽要喷了| AV在线性爱| 嗯嗯嗯,草死我| 国产精品婬乱一级毛片彝族| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 白丝1区2区3区| 国产精品无码AV网站| 亚洲精品毛片在线观看| 人人操人人肉久久精品| 动漫av中文| 亚洲二区精品在线观看| 欧美日韩亚洲天堂| 无码9区| 国产人妖的免费的视频| 亚洲熟女偷拍在线观看| 资源在线观一 二| 无码WWW免费视频网站| 三级日本一区二区三区| 一本色道人妻久久| 超碰97最新人妻| 欧美精品另类人妖xxxx| 成人av免费观看| 成人无码在线超碰网| 天天亚洲| 绯色一区二区三区不卡少妇| 91在线/欧洲| 亚洲色图 欧美热图 清纯唯美 另类自拍| 亚洲系列第一页| 欧美日韩国产精品久久色婷婷| 亚洲情色91| 乱伦日本色图AⅤ| 一区二区精品日韩欧美在线观看 | 开心六月色| 国产999精品久久久久久| 狠狠色综合网| 99视频内射三四| 在线观看岛国有码| 天天色综亚洲91污| 青青草天天亲夜夜操网| 99熟女| 337p大胆噜噜噜噜噜91Av| 色狠狠 - 百度| 国产女同在线观看视频| 波多野结衣一级视频| 看一级特黄a大一片| 超91综合网| 久久婷婷色综合一区二区三区| 中文字幕在线24| 欧州色图区| 中国一级操逼视频| 亚洲一区深夜| 2017人人操,人人摸| 这里只有97精品| 啊啊啊啊啊啊啊在线| 免费9 1久久| 日韩性色b| 精品夜夜澡人妻无码| 五月丁香色情| 东京热熟女亚洲视频网站| 日韩人妻 中文字幕| 久久久久久人妻一区精品色欧美| www.夜夜操| 97资源欧美| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 中文日本免费高清| 国产精品成人久久一区二区三区| 欧美草草高清日韩视频| 亚洲啪啪啪啪视香蕉| 久9久9精品| 素颜老阿姨乱情色| 1204av韩国| 精品国产乱码久久久兰草影视| 婷婷五月天无码 | 超碰在线人人射| 夜夜爽夜夜爽| 日韩av电影成人在线| 免费av在线播放二区| 亚洲精品国语在线播放| 家庭乱伦国产| 亚欧高清v| 丁香五月天堂网| 尻女朋友一夜| 91人人看| 熟女天天干| 综合网欧美在线| 亚洲AV乱码专区国产噜噜亚洲| 夜夜爽妓女| 亚州综合色图| 99热婷婷一区二区三| 欧美人妻少妇| 中文字幕成人理论在线| 清柠毛片| 中文字幕综合人妻| 麻豆AV一区二区天美传媒| J?P?NESEHD熟女熟妇伦| 成全动漫视频观看免费下载| 不卡av在线中文字幕| 在线视频亚洲无码| 国内毛片国产专区二| 久久综合婷婷| 特级大荫道BBwBBwBBW| 精品成人女人久久| 国产精品视屏| 欧美另类综合久久| 丁香五月性爱| 传媒免费一区二区三区| 成人精品水蜜桃久久久久久久| 我要色综合网站| 午夜男人的天堂| 国产又猛又粗又爽又黄| 免费看日产一区二区三区| 日韩色欲久久一二三四区| 农村妇女一级二级三级视频| 亚洲AV无码久久精品蜜桃小说| 亚洲精品97p| 偷拍亚洲| 大香蕉丝袜一级片| 午夜毛片高清免费不卡| 综合网亚洲| 91人妻尻屄视频| 亚洲五区熟女| 综合97| 在线人人人人人人精品超| 有码人妻系列| 亚洲色宗合| 国产探花精品在线| 六九九九| 97爱爱官网| 日本无码1| 99综合自拍| 亚洲 欧美 色图| 国产精品自在自拍视频| 使劲用力艹少妇视频一区二区| 搡老女人老熟女91老熟女综合网| 亚洲最大无码中文字幕网站| 亚洲涩涩| 无码丰满熟妇一区二区浪潮AV| 国产一区二区三区中文字幕| 狠久久| 成人无遮挡毛片免费看| 中文字幕精品丝袜| 操久久久久| 国岛片视频| 自拍丝袜美腿人妻| 肉动漫无遮挡h在线观看| 狠狠干狠狠干| 1区2区3区视频| 夂久色| 中国熟妇| 人人操人人插人人摸人人干| 九九九九免费高| heyZO天然素人无码AⅤ专区| 国产亚洲精品农村妇女| 无码人妻精品一区二区三区九九| 中文字幕乱码在线| 精品国产91久久久久久一区黄无| 2023天天操夜夜操| 日本97久久久精品| 天堂69亚洲精品中文字| 日日骚 av| 青青免费在线视频一区| 人人噜夜夜操| 亚洲一本大道中文字幕无码在线| 乱操9999| 99精品久久| 色欲av国内精品久久久久久| 91欧美| 超碰97人妻在线| 无码heyzo高清一区| 农村女一级毛卡片| 亚洲精品国产AV天美传媒| 丝袜高跟澳门91视频| 亚洲AV无码国产精品久久久久| www.av不卡中文字幕| 首页中文字幕中文字幕免费| 国产精选视频| 久久黄黄| 国产成人超碰在线| 久久综合av| 日韩在线观看中文字幕视频| 深夜激情| 国产超碰在线一区| 色综合久久88色综合久久天天| 一级黄碟| 欧洲天天在线| 人妻人人做人人澡人人爽欧美一区| 骚熟女吞| 大香蕉久久| 亚洲日本大香蕉1| 九九热最新| 一级二级三级黑人无码| 亚洲精品一卡二卡三卡福利视频网站| 国产精品三级视频网站| 澳门黄片一香蕉视频| 国产诱惑| 亚洲欧洲美腿丝袜| 999国产精品999| 亚洲色图 91| 人妻精品一区二区全免费| 中文字幕亚韩| 国产辣妈在线视频福利| 加勒比伊人综合| 夂久色| 五月丁香六月综合缴清无码 | 伊人四虎综合| 色老汉色| 欧亚在线视频| WWW操逼| 亚洲色图欧美色图综合| 久久、1234| 日韩成人性爱电影在线播放| 岛国黄片网站| 国产精品久久久九九九| 国模限制级电影| 国产精品久久成人免费| 中文一区二区三区影院| 18+91网站| 伊人久久国产免费观看视频| 亚洲成人久久美女| 涩涩这里只有精品视频| 另类图片综合| 天天狂操夜夜狂日| 五月天欧美色图| 97色论| 久久久草成人网站久久久草成人久久久草久久久 | 亚洲天堂综合AV| 人妻中文字幕日韩电影| 26uuu性| 久久精品一区二区一8| 99精品网站| 精品一区二区三区蜜桃臀赵总 | 国内毛片四区| 999熟女精品| 啊啊啊啊啊在线视频| 欧美淫穴| 男人夜色天堂ss| 久久这里只精品免费福利| 97超碰色色| 人妻天天爽夜夜爽2| 九九九九精品一区| 97干综合网| 久久九精品| 一二三啪啪专区| 久久超碰爱| 人妻天堂综合网| 1024人妻| 日韩欧美女优电影| 国产欧美美女免费观看视频| 九九无码久久精品视频| 天美传媒国产原创中文字幕亚洲欧美另类 | 国产91福利小视频在线观看| 97啪啪| 欧美日韩人妻精品系列一区二区三区| 天天综合网1| 啊啊啊啊二区好大| 97超碰免费人人性爱| 一区二区三区无卡视频在线观看| 婷婷精品视频| 蜜臀久久久久久999| 超碰三级秋霞| 精品人妻一区二区免费蜜桃| 97干日韩| 黑操B| 啊啊啊啊啊操我视频| 天美传媒一二三区永久网站| 高清在线偷拍自拍视频| 俺去也婷婷| 精品久久久久,69国产成人精| 91狠婷| 亚洲码和欧洲精品激情系列| 性交一区二区在线播放| 蜜臀网址在线| 婷婷久久五月综合激情| 国产欧美精选激情视频| 国产美女高潮叫床视频| 六九九九| 国产熟女精品区| 日本免费一区二区不卡| sewuyueav| 97aiaiai| 国产亚洲深夜激情| 日韩不卡a级视频专区| 少妇超碰在线| 欧美日韩222| 久草精品一区| 九九碰九九爱97超| 毛片一区二区| 牛黄色久午久| 色情综合网| 大奶尤物鲍汁淫荡欧美视频粉嫩夜夜骚| 99精品网| 色网1| 国偷自 一区二区| 精品69网| 亚洲国产午夜真人一级片中文字幕精品黄网站 | 999热这里只有精品| 自拍内地三级在线观看| 国产一区二区三区精品观看啪| 思思热在线视频精品| 91处女视频在线观看| 午夜啊啊| 一本色道综合久久欧美| 亚洲AV免费在线| 国产精品久久久777| 78精品| 熟女精品va中文字幕| 色五月激情网| 国产精品午夜福利视频| 精品无码久久久久久久杏吧| 日韩欧美国产高清视频| 懂色综合久久久| 人妻精品一区二区全免费| 东京热,男人的天堂| 熟女91网| 亚洲一曲日韩精品| 99热精品在线播放| AV色图| 久久久久免费看少妇A片特黄| 免费观看欧美日韩操逼视频| 另类av天堂| 加勒比综合网| 91 刺激在线| 成年人免费观看网站| 久久久精品电影| 超碰97爽| 天天欧美97| 粉嫩绯色AV一区二区在线| 青青国产在线拍揄自揄拍| 国产精品熟女一区二区三区| 丁香五月激情综合| 亚洲国产中文字幕| 脫衣舞一区二区三区| 丝袜无码a片| 狼人狠干| 亚洲色图91欧美日韩| 91丝袜人妻| 国产精品久久99日日| 白丝少妇一区二区| 中文精品一区二去| 国产亚洲日本| 美国一区二区免费视频| 97精品97久久| 亚洲精品国产熟女| 91天美传媒在线观看| 国产午夜福利专区综合| 中文字幕视频2区| 成人五月天丁香激情综合| 啊啊啊啊啊在线观看网址| 久久免费少妇| 99综合自拍| 免费?级毛片无码?∨蜜芽试看| 夜夜一区二区| 操屄日韩| 白丝少妇一区二区| 嫩草影院在线观看精品 | 日韩中文字幕二区| 青青青青青手机视频| 欧美亚洲丝袜人妻制服99| 人妻少妇久久| 殴美牲| 日韩免费a级毛片无码a∨| 天天影视激情欧美| 中文字幕中文字幕一区二区| 激情终合网| 国产亚洲深夜激情| 死我十八禁| 无色无码| 色综合20p| 久久综合激情| 久久伊人最新网址视频| x97av| 人妻中文在线| 国内毛片国产欧美拍| 日本孕妇孕交| 97五月天| 亚洲天堂精品日韩电影| 欧美亚洲涩涩| 国产高清无码一区三区二区| 四虎在线播放| 丰满人妻-区二区三区免费| 日日爱99| 精吧天堂| 久久免费中文字幕在线观看| 国产区91柔拿会所技师| 美女91在线| 天天综合欧美综合| 色色婷婷丁香| 91美女视频| 9999久久久久| 亚洲城人男人的天堂| 日本天天操| 亚洲色图A| 国产成人免费观看在线视频 | 欧美成人精品一区二区男人蜜臀| 国产原创精品| 亚洲一区二区三区AV无码| 亚洲精品97| 青青草啪啪网| 夜夜操2028| 91高清无码下载| 中文无线日韩一区| 精品视频97| 婷婷五月天影院| 国产区91柔拿会所技师| 无码精品久久久久久亚洲| 中文字幕欧美日本乱码一线二线 | 精品久| 成人精品欧洲亚洲| 人妻中文字幕日韩电影| 黄色激情电影在线观看| 欧美人妻少妇| 国产嫩草精品A88AV| 无码又爽又硬又激情免费视频| 操逼操2| 午夜啊啊| 美女天天干| 黑丝91视频| 九月色婷婷| 色色色色网站| 色呦呦呦在线观看视频| 久久久久久久久久久免费精品| 国产乱不卡| 小草av不卡亚洲二区| 国产大片精久久久久久| 欧美激情总合网| 99九九久久| 这里都是精品在线观看| 爱av免费| 综合久久久久久久综合网| 成人午夜高潮av猛片| 久久r精品| 91久久久久久久| 欧美日本天堂| 日本福利社| 综合激情婷婷| 九九色综合| 国产刺激视频| 日本中文字幕在线视频| 欧美日韩国产色图在线| 日美免费黄片| 亚洲一级性爱视频免费看| 91视频综合网| 3PAV乱伦视频| 日本东京热久久久电影| 亚洲精品自拍| 人妻丝袜美腿中文字幕| 粉嫩av在线| 最新无码国产| 欧美探花网| 男人高清无码一区二区| 91c色| 亚川综合视频| 亚洲最新中文字幕免费| 国产精品呦一区二区三区| 国产三级中文有码在线视频| 韩日无码在线观看| 五月激情视频| 国产原创精品| 91性生活久久久| 日韩精品操少妇| 综合欧美日韩在线| 后入式五六区| 免费97视频| 精品美女少妇一区二区| 蜜臀久久99精品久久久久久| 久操免费观看| 变态综合色| 国产高清午夜成人在线观看| 亚洲综合影院| 99国产在线 精品 视频| av婷婷色婷婷色六月| 五月天综合网| 快点操死我| 一区| 99精品九九九九九九| 久草新在线| 亚洲色人阁| 亚洲一区中文精品| 国语国产操逼伊人AV网| 丁香六月婷婷综合| 亚洲91网。| 99这里都是精品| 日本精品999| 91人妻做a观看视频| 婷婷大香蕉| 99热9| 青青草啪啪网| 国产日韩怡红院| 人人操人人爽人人操人人| av绯色| 欧美日不卡| 91色鬼| 91n.欧美| 青青青国产手线观看视频2| 岛国艾薇凹凸视频天堂| 久久久久久夜夜夜夜夜| 欧美精品三区| 一起草高清无码| 在线观看黄色电话| 操我啊啊啊啊啊| 九九九九九九精品| 妇女性内射冈站HDWWWCOM| 一区二区娱乐网站| 国产精品视频| 中文字幕蜜乳av| 欧美劲爆视频一区二区| 久久一区,青青青青草视频在线播放| 天天干夜夜| 一级岛国大片| 婷婷四五区| 色香在线| A 天堂| 久久99久久99精品免视看婷婷| 中文字幕女同在线| 黄色工厂这里只有精品| av天堂天堂av日韩| 欧美综合97www| 操曰本熟女| 高潮毛片无遮挡高清免费| 亚洲色五月| 九草九九九| 亚洲色图综合| 国产欧美一区激情交| 国产精品在线一区二区| 超碰精品国产无码| 九九热男人天堂| 青青草好吊色| 日本三级大片| 国产91 丝袜在线播放| 国产精品无码久久久久2025| 久九干| 国产97色在线| 伊人网av| 992视频一区| 夜夜草网站| 天天爽入口| 精品久久久久久中文字幕三区| 超碰AV在线| 亚州欧美在线| 最新啪啪视频| 亚洲欧美91√| 成人性爱电影网| 97欧美色| a在线观看| 夜夜操一区二区| 国产黄片精品在线| 亚洲精品 超碰| 国产多人在线观看视频| 自拍视频大全亚洲专媒视频/一区二区三区 | 综合久久久久久久久91| 亚洲综合性感在线| 免费的黄片有限公司| 夜夜騷av、一區二區| 久久性生大片免费观看性| 久久xx| 九色黄站| 动漫片子网站3黄| 欧美18 在线观看| 加勒比五月天| www.久久最新地址| 五月天亚洲网| 福利伊人玖玖国产| 91蜜臀人妻中文字幕在线| 亚洲成人av电影在线| 日韩97视频| 五月婷婷激情网| 97chaopengongkai| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 91综合站| 久久黄黄| 国产又色又粗又黄又爽| 老熟妇一区二区三区啪啪| 国产精品久久久久中文字幕| 免费超碰97久久| 日韩成人综合网| 欧美日韩亚洲少妇寂寞影院正在播放| 日本三级中国三级99人妇网站| 校园春色五月天| 国模不卡一本二本三电影| 黄色操人| 国产h片在线观看视频| 国产精选视频| 亚洲精品欧美专业| 蜜臀国产AV中文字幕| 久久天堂婷婷网| 亚洲综合在线高清| 色网综合网| 九九九九九九综合| 97操碰| 久久久草草精品| 欧美亚洲首页| 国产精品点击进入在线影院高清| 九九综合色| 亚洲欧洲美腿丝袜| 高颜值美女口爆高潮浪叫| 呦呦一区| 亚洲欧综合另类无码一区| 超碰AV在线| 99久热| 四虎免费看黄| 91老熟妇| 男人兔费天堂| 97天天插| 天天爽夜夜爽夜夜爽精| 大香蕉伊人在线成人AV在线观看| 好涩综合| 日本三级日本三级99| 亚熟hd视频在线| av一区二区三区不卡| 色婷婷六月| 中文字幕日韩情色| 中国少妇XXXX做受| 青青伊人久久| 成人免费看吃奶视频网站| 日韩九区| 热99这里有精品综合久久 | 偷拍2020| 中文色综合| 欧美激情久| 日韩色| 亚洲精品久久久久久| 日本孕妇一区二区视频操逼免费看 | 久久久少妇诱惑精品视频| 2019天天干天天操| 亚洲欧洲无码一区夜| 黄色区免费观看中文字幕| 香蕉大久久久| 尹人大香蕉视频在线| 好涩综合| 久久a久久| 日本激情免费大片| 九九九不卡| 国产少妇与亚洲av| 亚洲第一黄色av网站 | 黄页18禁| 欧美日韩欧美| 伊蕉97蜜桃97狠狠综合干 | AND人妻系列| 乱伦AVxx| 毛片久久| 欧美综合制服在线| 精品视频免费在线一区| 天天影视综合色| 久久精品人妻一区二区| 欧美精品另类人妖xxxx| 校园春色亚洲色图| 日韩pv中文| 91春色| 91精品国久久久久久无码| 清柠毛片| 日韩一级欧美一级国产一级台湾 | 国产毛片精品一区二区色欲黄A片| 97精品在线视频| 性感女人网页在线观看视频| 国产精品人妻熟女aⅴ| 啊啊啊啊啊啊在线| 东京热男人的天堂精品| 国产一区二区二区按摩精品啪视频| 激情图片亚洲色图| 欧美性爱系列| 麻豆久久精品亚洲精品88| 少妇人妻无码| 国产呦精品一区二区三区下载| 久久久久久久久久久精| 999久久久精品国产| 免费精品人妻一区二区三| 人妻熟女一区二区在线视频| 欧美青青视频| 你操综合| 成人精品一区二区91毛片不卡| 欧美性高潮在线| 欧美综合色图片| 啊啊啊不要嗯嗯在线观看| 日韩人妻少妇中文字幕| 久久思思热| 中国小夫妻勾搭露脸淫荡对白 | 色69大色97香蕉| 久久久久久91香蕉国产| 91伊人大香蕉| 91美女视频在线| 99999精品成人| hd成人一区二区在线| 色一情一乱一乱一区91Av| 激情综合久久| 91久久免费视频互動交流| 370p日韩欧美亚洲精品| 欧美日韩国产另类综合| 色色色色网站| 日韩人妻网站| 激情四射婷婷六月天| 免费视频观看60秒| 搡老熟女免费视频| 国产黄色剧情影片麻豆免费播放| 边做饭边操逼逼| 亚洲国产一区二区三区四区国产| 视频二区美腿丝袜制服人妻欧美| 欧美狠狠操| 男人的天堂com| 欧美亚洲综合高清在线| 午夜男女爽爽爽影院视频| 日本肉体xxxx裸交| 91日韩在线| 国模限制级电影| 97久久国产精品女不卡| 成人免费看吃奶视频网站| 日本日皮视频逼| 亚洲欧洲小说图片视频 | 日本大香蕉综合网| 久久无码精品| 中文字幕在线观看二区三区| 裸体美女免费看网站青草| 98色网| 97射欧美| 97免费在线观看| 国产呦精品一区二区三区下载| 97露脸精品丝袜| 啊啊啊好舒服视频| 乱伦日本色图AⅤ| 亚洲Av噜噜一区二区三区妖精| 91在线观看,天天综合| 十八禁成人网站在线观看| 精品人妻一区二区三区夜夜| 日本506070| 日韩有码免费视频| 蜜臀99久| 免费在线观看国内色片网站网址| 成人AV素股で擦久久| 国产又猛又粗又爽又黄| 日韩在线视频1234| 天天日夜干| 五月天婷婷基地| 少妇久久久久久| 97色婷| 久久精品高清无码一区| 在线观看日韩av不卡| 天天添天天干电影| 日韩av无码网站| 牛牛久久国产精品视频一二三| 99蜜月精品久久| 亚洲精品日日夜夜52| 强乱老妇中文字幕| 91精品国产综合久久久蜜臀| 青娱乐休闲视频在线观看| 狠狠搞 亚洲91| 国产熟女乱论| 人妻精品一区二区| 国产日韩欧美| 亚洲黄色视频在线观看视频| 9久精品视频在线观看| 玖玖在线视频| 99e久久国产精品| 天堂亚洲欧美| 一区二区你上我| 成人无码在线视频网站| 综合自拍| 小草av不卡亚洲二区| 91人妻Pr| 综合 欧美 亚洲 日本| 2020天天色综合| 夜夜爽妓女| 亚洲综合激情五月久久| www.99色| 欧美不卡在线一区二区| 欧美激情视频一区二区| 国产视频一区二区在线| 日本一级一级一级一级| a级理论午夜日本| 成人网站 免费观看| 黄色免费网| 内射夫妻三片| 天欧美在线| 国产成人啪一区二区| 麻豆人妻精品一区二区| 男男H黄动漫啪啪无遮挡网站| 久久综合国产精品国产| 九九视频黄色片| 乱操乱伦AV| 99国产女人| 久久久久96| 欧美综合 站| 亚洲成人精品久久久| 嗯嗯啊好大| 青青草久久在线| 国产欧洲精品亚洲午夜拍精品| 久久鲁夜| 精品96久久| 国内外内射高清视频| 久久成年精品| 欧美十八禁导航成人| 日韩欧美大片免费高清啪啪| 97视频在线免费| 国产自啪精品视频网站黑丝| 欧美伦乱爱| 欧美综合另类| 九九久久首页| 激情文学小说一区二区| 五月婷婷啪啪| TS人妖另类精品视频系列| 国产偷人妻精品一区二区在线| 亚洲中文字幕三级在线| 欧美不在线| 道久久五香丁月婷婷激情综合| 91婷婷伊人狠人| 第四色奇米影视777| 亚洲干B| 久草资源欧美在线视频| 免费av大片| 呦呦一区| 亚洲和欧美裸体美女双飞视频| 国产欧美亚洲精品a第2页| 久久久啊啊啊| 国产传媒美日韩av| 99色色网| 插穴性爱视频在线观看| 久久精品28| 九九九九九九九| 另类av天堂| 凹凸视频特色日本特黄| 国产中文大片资源中文字幕| 欧美色宗合| 是还免费视频1727我| 日本曲间由美性生活片| 日亚韩精品视频二区三| 69国产对白刺激| 午夜福利合集| www.AV有限公司一区| 午夜婷婷| 熟女精品va中文字幕| 丝袜人妻av一区二区| 色九九九九九九| 欧美婷婷久久| 久九九九九九九热| 中日韩欧美精品无码AⅤ一区二区| 欧美亚洲首页| 欧美后入式| 国产传媒一区日韩| 91女网站| 大香蕉久久| 一区二区三区欧美激情| 天天躁日日躁xxxxx| 欧美精品二区视频在线| 男人的天堂网页| 中文字幕伊人| 欧美后入视频| 中文在线久久字幕| 亚州精品丝袜-不卡成人免费| 亚洲日本成人动漫| 亚洲中文字幕三级在线| 日韩黄色电影网站| 综合五月婷婷亚洲一区| 中文字幕精品免费一区二区| 免费操逼91| 欧美一级在线观看成人 | 91午夜无码| 日本欧美韩国国产在线| 午夜福利 成人 91| 蜜桃网熟妇| 东北女人| 嗯嗯啊好大| 少妇69中文| 97 九色| 91无码人妻| 少妇色综合| 吉川爱美亚洲二区在线| 欧美午夜视频| 久草精品一区 | 国产成人精品必看 | 国产午夜精品一区二区三区牛牛| 丝袜性亚洲| 中文字幕 码 自拍 视频 区| 91色婷婷综合久久中文字幕二区| 人、人、摸,人、人、草| 大香网站| 亚欧Av| 不卡一区二区日本视频| 激情 欧美 亚洲 小说| 诱惑网综合| 日韩青久久| 欧美色图20P| 2017天天插| 女生看匆91网站| 亚洲影视第一页| yy少妇精品久久| 高清不卡 中文 人妻| 天天操熟妇| 欧美日韩欧美| 国产精品3| 色综合1991| 色色九区| 少妇精品久久| 成人精品无码| 男人天堂黄片| 手机看av网站在线看| 色婷婷综合网站| 日韩乱码Av| 中文字幕97色| 国产日韩美女小穴视频网站不卡| 91久| 又大又长又粗又爽又黄| 青草青草久热| 熟女人妻av在线资源,黄色的资源 粉嫩国产精品久久粉嫩 | 97精品综合久久网| 青青草久久在线| 国产60页| www.91逼逼.com| 美女刺激久久国产欧美| 欧美亚男人的天堂|