久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

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

Redis主從復(fù)制全解析:全量同步、增量同步與PSYNC協(xié)議實(shí)踐 1. 先想明白主從模式到底是在解決什么問(wèn)題有一回我和同事排查一個(gè)線上告警從節(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ū)太小斷線期間的增量數(shù)據(jù)已經(jīng)保不住了所以被迫退化成一次完整的全量數(shù)據(jù)同步。那次之后我越來(lái)越覺得Redis 主從模式不難搭但要把全量數(shù)據(jù)同步和增量數(shù)據(jù)同步這兩套機(jī)制吃透才談得上在故障面前不手忙腳亂。主從模式是 Redis 高可用的地基。你可以先把它理解成一個(gè)“一個(gè)老師帶多個(gè)學(xué)生”的結(jié)構(gòu)主節(jié)點(diǎn)負(fù)責(zé)接收寫請(qǐng)求從節(jié)點(diǎn)實(shí)時(shí)跟著主節(jié)點(diǎn)的數(shù)據(jù)走平時(shí)主要承擔(dān)讀請(qǐng)求。這樣做最直接的好處有三個(gè)讀寫分離把讀流量分散到多個(gè)從節(jié)點(diǎn)上主節(jié)點(diǎn)壓力變小。數(shù)據(jù)冗余主節(jié)點(diǎn)掛了從節(jié)點(diǎn)手里還有一份完整數(shù)據(jù)能頂上。高可用基礎(chǔ)哨兵模式、集群模式底層都依賴主從復(fù)制這套數(shù)據(jù)同步機(jī)制。搭建主從的方式也很簡(jiǎn)單無(wú)非兩種。一種是配置文件中寫好replicaof指令另一種是在命令行動(dòng)態(tài)執(zhí)行# 在從節(jié)點(diǎn)上執(zhí)行把當(dāng)前實(shí)例變成 master 的從節(jié)點(diǎn) REPLICAOF 10.0.0.11 6379注意命令是REPLICAOF不是老寫法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í)掉線了、誰(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í)行完寫命令后就返回客戶端了不會(huì)等著所有從節(jié)點(diǎn)都確認(rèn)寫完。所以從節(jié)點(diǎn)上的數(shù)據(jù)一定比主節(jié)點(diǎn)“慢一點(diǎn)點(diǎn)”這個(gè)滯后是常態(tài)。理解了這一點(diǎn)你再去看全量同步和增量同步的設(shè)計(jì)就會(huì)有更清晰的主線一切努力都是為了縮小這個(gè)滯后窗口同時(shí)讓斷線重連后的追平成本盡可能低。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ō)的一句話永遠(yuǎn)是PSYNC ? -1翻譯成人話就是“我對(duì)自己要復(fù)制的這段數(shù)據(jù)歷史一無(wú)所知從哪個(gè)偏移量開始追我也不知道干脆把我需要的所有數(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)寫到的字節(jié)位置相當(dāng)于播放進(jìn)度。拿到這兩個(gè)信息之后從節(jié)點(diǎn)才正式開始全量同步。這里有個(gè)值得拆解的細(xì)節(jié)為什么第一次同步必須用全量而不是把主節(jié)點(diǎn)上的每條寫命令都重新發(fā)給從節(jié)點(diǎn)執(zhí)行一遍原因很樸素——主節(jié)點(diǎn)可能已經(jīng)跑了幾個(gè)月寫操作記錄太多了如果從頭開始逐條“補(bǔ)作業(yè)”網(wǎng)絡(luò)開銷和耗時(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é)。我把完整流程拆開來(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ù)所有新的寫命令會(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í)間積攢的寫命令補(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)境里見過(guò)上百 GB 的實(shí)例做全量同步主節(jié)點(diǎn)的瞬時(shí) CPU 直接飆到多核打滿耗時(shí)是以分鐘計(jì)的。所以 Redis 提供了一些調(diào)節(jié)閥比如# 開啟無(wú)盤復(fù)制主節(jié)點(diǎn)不生成 RDB 文件落盤通過(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ú)盤復(fù)制適合主節(jié)點(diǎn)磁盤 IO 比較吃緊、但網(wǎng)卡帶寬還寬裕的場(chǎng)景。如果從節(jié)點(diǎn)很多我會(huì)建議開啟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)沒法對(duì)外提供讀服務(wù)INFO replication里會(huì)看到master_link_status:down同時(shí)在日志里出現(xiàn)SYNC with master in progress。這個(gè)狀態(tài)持續(xù)多久取決于 RDB 文件的大小和機(jī)器的磁盤速度。如果你的業(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ì)翻倍。所以要不要開還得看你的內(nèi)存余量不能照單全收。再補(bǔ)一個(gè)容易踩的坑如果從節(jié)點(diǎn)配置了 AOF 持久化那么從節(jié)點(diǎn)在完成 RDB 裝載之后還會(huì)基于新數(shù)據(jù)集做一次 AOF 重寫。換句話說(shuō)磁盤上會(huì)先出現(xiàn)短暫的“舊 AOF 和文件新內(nèi)容并存”的狀態(tài)如果你監(jiān)控的是磁盤空間這段時(shí)間要做好心理準(zhǔn)備別把磁盤告警閾值卡得太死。3. 增量同步復(fù)制偏移量、積壓緩沖區(qū)與命令傳播3.1 復(fù)制的“里程表”offset 是怎么記錄進(jìn)度的全量同步結(jié)束之后主從之間就進(jìn)入增量數(shù)據(jù)同步階段也叫命令傳播階段。這時(shí)候機(jī)制變得輕量很多主節(jié)點(diǎn)每執(zhí)行一條寫命令除了寫自己的內(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í)間沒收到 ACK主節(jié)點(diǎn)就會(huì)認(rèn)為這個(gè)從節(jié)點(diǎn)已經(jīng)斷開了。3.2 斷線重連后主節(jié)點(diǎn)怎么決定從哪接著傳從節(jié)點(diǎ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è)條件都滿足主節(jié)點(diǎn)返回CONTINUE然后從offset對(duì)應(yīng)的位置開始把后面的命令流繼續(xù)發(fā)給從節(jié)點(diǎn)。這個(gè)過(guò)程就是增量數(shù)據(jù)同步也就是官方文檔里說(shuō)的“部分重同步”partial resynchronization。代價(jià)非常小網(wǎng)絡(luò)開銷只等于斷線期間積攢的那部分命令。如果條件不滿足主節(jié)點(diǎn)返回FULLRESYNC整個(gè)流程退回全量同步。具體來(lái)說(shuō)以下兩種情況最常見從節(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 大小是增量同步的命門對(duì)象積壓緩沖區(qū)的官方配置名是repl-backlog-size默認(rèn)只有 1MB。1MB 聽著不小但放在寫流量大的主節(jié)點(diǎn)上可能不到一分鐘就被環(huán)形緩沖區(qū)覆蓋掉了。為什么說(shuō)是環(huán)形緩沖區(qū)因?yàn)樗拇鎯?chǔ)區(qū)域是固定大小循環(huán)使用的。新命令不斷寫入最老的命令就被頂?shù)?。主?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 越大能容忍的斷線時(shí)間越長(zhǎng)增量同步的成功率越高。生產(chǎn)環(huán)境里怎么定這個(gè)大小我一般會(huì)先做個(gè)粗估算repl-backlog-size 主節(jié)點(diǎn)每秒寫入量(bytes) x 預(yù)期最長(zhǎng)斷線時(shí)間(秒)比如主節(jié)點(diǎn)平均每秒產(chǎn)生 2MB 寫命令我希望從節(jié)點(diǎn)斷線 120 秒后重連還能走增量同步那就得給到 256MB 以上。注意這里算的是寫命令的字節(jié)量不是業(yè)務(wù)寫入的數(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開始填充新的環(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)只要斷開重連不管斷了幾秒、缺了多少數(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í)被打滿??梢哉f(shuō)SYNC協(xié)議是把“簡(jiǎn)單”寫在了臉上代價(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)可以在斷線重連時(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 是綁定的沒有 backlog 就沒有斷點(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 掛掉那一刻沒來(lái)得及同步的一小段而已。理論上B 和 C 都從 A 復(fù)制了一份幾乎相同的數(shù)據(jù)C 連到 B 時(shí)完全有資格做增量同步。但舊協(xié)議不認(rèn)賬C 會(huì)被迫從頭開始全量拉一次 B 的數(shù)據(jù)浪費(fèi)大量帶寬。第二代 PSYNC常被稱為 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ò)壓力都大大緩解。可以用一張小表把三代協(xié)議的區(qū)別說(shuō)清楚能力SYNCPSYNCPSYNC2初次全量同步支持支持支持?jǐ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)“你斷線了多長(zhǎng)時(shí)間”。哪怕只斷了幾秒只要這幾秒內(nèi)主節(jié)點(diǎn)的寫命令字節(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)前寫入進(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)被寫滿里面的內(nèi)容時(shí)刻在滾動(dòng)淘汰。這種狀態(tài)下斷線重連增量同步的成功率非常低。解決辦法也很直接把 backlog 調(diào)大同時(shí)結(jié)合業(yè)務(wù)寫流量估算出合理值。調(diào)整完不是結(jié)束還應(yīng)該盯兩輪第一輪觀察斷線重連的日志確認(rèn)出現(xiàn)的是CONTINUE而不是FULLRESYNC第二輪觀察主節(jié)點(diǎn) CPU確認(rèn)沒有因?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。聽起來(lái)是不是反直覺如果從節(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)為還沒過(guò)期兩邊刪除時(shí)機(jī)不一致就會(huì)導(dǎo)致數(shù)據(jù)分叉。所以 Redis 的策略是過(guò)期刪除的決策權(quán)只在主節(jié)點(diǎn)。主節(jié)點(diǎn)的處理方式有兩類惰性刪除客戶端請(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 掃描也沒掃出什么東西可以懷疑是過(guò)期 key 堆積。解決辦法并不復(fù)雜檢查主從復(fù)制是否正常確認(rèn)沒有積壓很久的延遲因?yàn)閺墓?jié)點(diǎn)必須追平主節(jié)點(diǎn)、消化掉積壓的 DEL 命令才會(huì)把這些過(guò)期 key 清空。另外要注意從節(jié)點(diǎn)一定要開啟只讀模式config set replica-read-only yes如果有人在從節(jié)點(diǎn)上手動(dòng)寫入或修改數(shù)據(jù)主從數(shù)據(jù)立刻就會(huì)分叉而且很難追回來(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í)掉線再重連另一個(gè)是從節(jié)點(diǎn)全網(wǎng)段重啟全部在同一時(shí)刻重連主節(jié)點(diǎn)。應(yīng)對(duì)思路有幾個(gè)我按優(yōu)先級(jí)說(shuō)調(diào)大 backlog讓盡量多的斷線重連走增量同步。這是最便宜、最基礎(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)的壓力。開啟無(wú)盤復(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值就要警惕掉線。這里還有一個(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 沒用還得優(yōu)化業(yè)務(wù)側(cè)的寫命令模式比如把大集合的批量寫拆開。最后分享一條我個(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í)間也建議你下次遇到類似問(wèn)題時(shí)先試試。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
婷婷五月综合在线| 91操熟女视频| 最新日本中文字幕| 日本污ww视频网站| 97视频620| 天天综合网亚洲综合网| 欧美啪啪啪91| 亚洲毛片基地专区| 日韩探花精品在线视频| 国人欧美精品一区二区| 韩国黄色片精品久久久| 天干天干天干天天做| 亚洲成人性爱网站在线播放| 精品一区二区三区蜜桃臀赵总| 97超碰色五月| 午夜精品久久99蜜桃的功能章节| 蜜乳av首页| 夜夜爽33333| 久久老熟女| www久久久| AV久日| AV一起草在线| 久久久久密臀一区二区| 亚洲视频中文一区| 区一在线观看| 人妻无一区二区三区| 色妇91| 以及麻豆国产入口在线观看免费| 亚洲精品蜜桃久久久一区二区三区| 成人女人国产| 国产一区二区成人av在线播放| **一级毛片国产| 99热97| 日韩性爱一级片| 亚洲欧美九九九| 亚洲伊人a线观看视频| AV天天在线观看| AA丁香综合激情| 狠狠搞 亚洲91| 日韩精品午夜操呦呦不卡影院| 高清无码国产亚洲| 午夜小电影在线插入淫高潮| 啊…啊…操我用力操我| 乱伦图av| 欧美色图亚洲色| 日韩欧美操逼xxx| 91色爽欧美| 欧美一级做a爰片免费视频| 97资源免费视频| 大香交伊人网| 国产精品女生av| 欧美淫乱视频| 青青草手机在线免费观看| 黄色av网站在线播放| 欧美一区二区三熟女剧情| 可以免费观看的日韩av毛片| 国语av狠狠色丁香婷婷综合激情| 好湿好紧视频| 欧美亚洲高清不卡| 99热色精品| 99精品人妻| 高凊专区人人操| 99热这里是精品| 婷婷视频在线免费观看| 日韩精品在线视频在线观看| 欧日韩一二三f区| 九九九九88| 岛国在线国产| 97国产精品久久久久| 91丝袜熟女| 一二三四视频在线社区中文字幕| 日欧美色| 欧美熟爽综合| 亚洲青青青视频在线| 久草五月| 亚洲国产激情国产av| 国产成人免费观看在线视频| 日语五十路和六十路亚洲国产精品 | 成人日本精品九区| 国产探花精品在线| 综合久久六月久久婷婷| 丁香六月激情| 亚洲日韩欧美一区二区| 欧美熟妇色| 黄色大片视频在线免费看| 国产精品第一页国产大屁股视频免费区| 色阁阁AV综合网| 亚洲男人的天堂网| 校园春色宗合网| 一区二区三区国产精产| 中美日韩毛片| 精品一区二区三区蜜桃| 人妻aa| 99热精品免费| 91老司机在线视频免费观看| 男人的天堂色偷偷青青草视频婷婷网| 国产不卡中文字幕免费avi| 一区二区三区国产精产| 天天日天天干天天摸天天操| 天天摸夜夜添无码小视频| 日本三级A片网站com| 3028国产精品| 精品人人| 97操97色| 午夜精品久久99蜜桃的功能章节| 很很干很很操| 久久久九九| 爱爱啊啊啊| 岛国毛片在线观看免费| 欧美另类色图片| 色老汉色| 国产无码久久高清| 精品人妻伦一二三区久久| 熟女熟妇伦久久影院毛片一区二区| 国产资源中文字幕在线 | 99久视频| 啊啊啊啊啊啊啊啊啊啊在线观看| 亚洲av综合色区图片亚洲| 超碰人人乐97| 四虎精品永久在线观看| 91c色| 蜜臀av一区二区三区免费观看| 台湾佬中文娱乐自偷自拍| 欧美激情 一区| 亚洲天堂中文字| 怡春苑东京热| 久久久99免费| 大鸡巴久久久| 97亚洲精品超碰| 中文字幕一区二区三区人妻少妇在线| 国产精品一区二区三区四区五区| 国产精品亚洲一级av第二区| 牛牛久久国产精品视频一二三| 麻豆91熟妇人妻中文字幕茄子| 岛国1区2区3区在线观看| 免费看污网站| 嗯啊视频免费在线观看| 国精品一区二区三| 国产熟女完整版中字| 国产精品久久久久久久久久久久久久久久 | 久久一留热品黄| 三及片网站| 无码日韩网站| 新久久AV| 日韩性爱小视频| 丰满搜索结果 -第18页- 久久高清无码| 久久草草亚洲蜜桃臀| 久久精品72| 午夜福利一区二区影院| 亚欧美综合网。| www.99中文字幕| 欧洲精品久久| 亚洲黄色影视| 午夜精品久久久久久久久久蜜桃| 欧美日韩精品久久久久久久久东北老熟妇| 久草综合视频| 亚洲国产精品乱码在线观看| 在线不卡视频| 激情婷婷综合久久| 色老牛| 欧美不卡在线一区二区| 久伊人网78| 久jiu久神马影院| 日韩成人综合网| 亚洲导航深夜福利| 超碰色男人操熟女| 狠狠躁伊人中文字幕| 超碰在线人妻不卡| www.激情| 久久久久无码| 麻豆 欧美 日韩| 在线中文字幕极品av| 火箭成精品视频884必出精品| 级品肉射| www.四虎在线| 欧美老妇女内射网址| 99综合自拍| 男人的天堂激情| 97综合在线| 婷婷亚洲五月***久久| 亚洲色人阁| 97超碰人妻| 特级特黄一级毛片免费| 欧美亚洲自拍另类人妻| 成年人网站在线免费观看| 女人综合网| 亚洲欧美综合图片| 视频国产欧美在线播放| 国产欧美岛国精品一区| 日韩去日本高清在| 偷拍欧美综合| 素颜老阿姨乱情色| 久久久久久无码人妻中文字幕| 亚洲国产97在线精品一区| 射综合网| 精品人妻一区二区视频| 亚洲欧美精品一区天堂久久 | 国产97色在线| 志村玲子视频一区二区| 99热色这里只有精品| 黄片aaaaa一区| 欧美亚州色的图| av亚欧| 国产美女裸体秘 永久无遮挡| 亚洲精品xxx| 男人的天堂啪啪啪啪啪蜜桃不卡| 99re69| 91色伦综合| 久久男人的天堂| 亚洲色诱惑| 9超碰免费| 久久这里是精品| 最近2019中文字幕国语免费版| 国产综合永久精品日韩鬼片| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 69人妻精品一区二区绯色| 国产和美国毛片| 欧美gv在线观看| 熟女丰满人妻一区| 欧美极品色| 久草免费在线一区二区| 97 视频在线| 97天天| 欧美极度丰满熟妇hd| 国产久久一区二区午夜| 天天久久| 欧插网站| AV老汉| 91亚洲影视| 97久久精品不卡| 亚洲av影院在线观看| 久久久久九九九九九| 91深夜夜| 亚洲综合图片在线| 伊人影院综合是一个与深夜成人在线| 九九热在线精品视频| 另类欧美综合| 混色激情av| 九热中文字幕| 九九九九九九成人| 九色婷婷| 日韩成人精品| 久久久99999久网站| 99操逼| 97天天综合| 人妻密肉在线观看| A 天堂在线观看视频| 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊 | 玖玖无码超碰| 日韩 欧美 校园一区| 欧美综合娱乐久久| 男同专区一区二区三区在线| 九久9精品| 亚洲人妻精品一区二区| 国产日韩中文字幕欧美| 精品小视频在线| 伊人综合色网| 日日夜夜草草草| 欧美性xxxxx狂欢| 久久久久免费少妇| 97碰| 亚洲色图加勒比| 久久久久9999精品九九九| 亚洲国产综合久久天堂| 亚洲成?V人片在线观看福利| 亚州性9| 热热色中文无码| 欧美狠狠狠| 天天热精品| 六月丁香五月婷婷| 中日亚韩免费视频| 国产又色又粗又黄又爽| 另类图片欧美激情综合| 欧美成人性活片| 性九九九九九九| 揉揉揉夜夜| 欧美激情在线观看视频| 九九九精品一区二区无码| 一区二区三区四区久久视1| 亚洲激情久久| 综合色拍| 极品粉嫩少妇视频| 欧美伦乱爱| 一区二区国产视频在线观看| 综合久欧洲| 午夜福利久久久噜久噜久久综合| 欧美天天谢综合网| AV一二区| 精品久久97| 96AV久久久| 欧美日韩大陆黑人少妇99| 欧美狠狠弄| 玖玖爱伊人玖玖爱| 日本欧美不卡| 2017天天拍大香蕉| 3571色综合一区二区二区| 伊人色综合超碰| 久久久草草精品| 欧洲站一级二级三级h| 亚洲无码日韩电影| 久96热在线观看视频| 国产综合久久久麻桃个| 一级岛国大片| 妺妺跟我一起洗澡没忍住| 1024日韩| 级品肉射| 日韩免费三级黄片电影| 麻豆2区1区天美| 亚洲国产中文字幕| 亚洲欧美自拍偷拍| 男人的天堂,欧美亚洲另类国产日韩,日本高清一区二区 | 亚洲蜜臀懂色| 亚洲本色精品一区二区久久| 丁香六月婷婷综合| 色哟哟AV| 大香蕉色十月| 综合亚州欧美| 超碰偷拍| 免费一级特黄特色大片在线观看看| 久热99| 午夜毛片高清免费不卡| 免费啪啪av| xxx亚洲午夜天堂| 国产精品懂色tv影视免费观看| 色呦呦呦在线观看视频| 欧美性高潮| 人妻中文字幕日韩电影| 大香蕉淫人| 亚洲一区日韩精品中文字幕 | 91美女视频在线| 91丝袜在线观看| 一区 欧美 日韩 麻豆| 久久国产在线一区二区| 亚洲精品三| 熟女熟妇一区二区三区视频| 97中文超碰| 四虎精品一区| 久久久爆乳翘臀一线天伦理视频| 日本大香蕉综合网红本杳社区| 91日本在线观看| 人妻少妇精品久久久久久| 99热啪啪| 天天看夜夜看日日干| 欧洲色综合| 国产精品对白内射| 激情综合网五月婷婷五月天| 中文字幕伊人| 日韩99神马视频片| 涩五月婷婷| 精品国产三级av韩国在线| 亚洲网自拍| 国产 码在线成人网站| 国产午夜精品理论片一二三区区| 97久久国产亚洲精品超碰热| 久久婷婷五月天| 日韩av影片在线观看| 射综合网| 中文乱码字字幕在线第5页| 精彩国产视频播放1区2区| 激情综合五月| 国产亚洲国产超碰| 欧美性爱伊人| 亚洲国产精品无码AV久久久| 人妻丰满熟妇一区二区三| 久久久精品国产亚洲伊人| 亚洲 日韩 丝袜 熟女 变态| 一区二区三| 久久精品国产99精品亚洲蜜... | 婷婷激情五月| 91强在线播放| 天天草天天日| 亚洲天堂99| 国产视频一区二区三区久久亚洲天堂| 另类专区加勒比| 日韩一级二级三级免费看完整版| 欧美亚洲| 色噜噜综合网| 亚洲国内精品成人不卡| 亚洲黑人在线| 久久五月视频| 久久人妻少妇| 操迟操逼在巾线Fre看| 殴美牲| 操曰本熟女| 亚洲综人网| 中国一级特黄大片护士| 亚洲精品丝袜| 欧美91在线| 色久桃花影院在线观看| 好吊色一区| 9Ⅰ老熟女| 久久综合五月天| 91n美女视频| 精品亚洲天堂| 色色激情五月天| 欧美伦乱| 欧美日日操| 天堂日本亚洲欧美| 色哟哟AⅤ| 欧美日韩精品久久久久东北老熟妇| 亚洲色婷婷久久91| 大香蕉99热| 美女91网| 九色 人妻 大香蕉| 超碰免费97| 按摩中文字幕| A级毛片在线看免费| 97高清啪啪| 丰满人妻aA一区二区三区| 操狠狠| 亚洲风情在线观看| 欧美日韩性爱精品| 内射中国少妇高清视频免费视频 | 综合天天网| 无码一区二区精品视频久久久春药 | 久久国产精品熟女人妻| 口爆吞精在线观看| 在线观看啊啊啊啊啊| 东北丰满熟女国产一区| 国产AV线| 99色综合| 婷婷超| 四虎国产成人精品免费一女五男| 国产精品com| 91久久伊人婷婷青青草| 操逼操网| 欧美在线啊啊| 男生女生啊啊啊啊| 午夜无遮挡男女啪啪视频| 女人的天堂大香蕉网| 欧美性爱1080p| 国产av色网| www.婷婷五月天| 国产深喉视频一区二区| 97爱b| 一区在线国产播放| 欧美中日韩XXXX| 99色天堂| 日韩在线国产字幕| 亚洲激情欧美色图 | 超碰人妻久久| 青青草字幕AV| 亚洲色吧网| 亚洲精品一二牛牛| 色777999综合| 久久久久国产亚洲一区欧美色图日韩| 人人看欧美性爱| 在线观看啊啊啊啊啊| 亚洲18禁| 久草福利在线资源站| 亚洲中文丝袜美腿诱惑字幕| 欧美一区二区传媒| 激情色色| 黑人综合网| 天天操人人操骚逼网站| 91欧美高清| 欧美一级特黄淫片在线观看| 青青久久艹| 97一本大道亚洲一区| 美日韩成人| 中文字幕国产在线天堂| 欧美女同在线| 国产亚洲色婷婷99精品91| 91碰碰碰| 国产97视频免费观看| 呦呦一区| 久操国产在线| 亚洲色图亚洲| 国产不卡的视频| 91红杏| 久久国内| 翔田千里无码中出中文字幕| 91欧美大片| 久久免费老司机精品| 在线观看日韩av不卡| 人妻二区| 超碰免费人妻在线| 天天操福利视频综合网站| 青青爽| 曰韩精品九九无码| 婷婷精品视频| 天天草夜夜草高潮片| 男人的天堂三级| 亚洲综合校园春色| 中文字幕超碰CAO| 亚洲天堂东京热| 五月天综合| 五月婷婷AV| 强奸乱伦动态污图免费| 国产家庭乱伦表演| 3PAV乱伦视频| 欧美日韩午夜精品一区二区三区| 欧美色图色综合| 欧美综合亚洲综合| 青青草吊丝| 欧美日韩操逼动图| 96精品久久久久久久久| 999岛国大片| 色综合91好| 久久精品国产亚洲粉嫩| 97欧美资源| 伊人网在线点播| 曰韩成人免费视频| 国产在线播放成人免费| 99热婷婷一区二区三| 99精品丰满人妻无码| 九九九九九九九九九五码| 色综合潮| 亚洲人妖网| 天天干一区二区| 天天肏美女| 人人爽人人精品乱人伦AV| 粉嫩久久久久| 91天天综合| 日本免费亚洲欧美| 人妻久久久久久| 女同女同恋久久级三级| 午夜理论片在线观看免费| 婷婷香蕉欧美在线一区二区三区 | 亚洲成a人在线观看久| 欧美熟女妇同| 台湾成人无码AV| 久久69| 91扒丝袜综合在线| 天天干天天日天天射黄色片| 亚洲欲色9532548967一区| 大香蕉操久久| 亚洲色图激情小说| 91九九九小逼| 亚洲欲| 日韩欧美被操黄免费观看| 嗯嗯嗯啊啊啊干死我吧| 密臀AV在线| 性高潮久久久| 国产精品久久久久av| 巨爆乳肉感一区二区三区竹菊影视 | 国产精品农村妇女| 国产精品成人AV片免费看网站| 国产乱伦亚洲色图高清无码| 色哟哟AⅤ| 欧亚性爱视频免费看| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 色狠狠 - 百度| 女人爽到高潮潮喷18禁网站| 日本三级日本三级三级人妇四虎| 日日妻色网| 欧美人妻少妇| 少妇国产不卡| 91 国产丝袜在线播放-百度| 欧美日韩久久精品爱爱| 久久狠狠色噜噜狠狠狠狠97 | 欧美成人亚洲精品| 精品97精品97| 亚洲欧美不卡线| 日韩亚洲中文有码视频| 久久免费精品视频免一| 久久久999网站| 日韩精品人妻中文字幕不卡乱码| 久久精品一区一起草| 狠狠久久手机视频精品| 人妻久久久| 亚洲有码第一页| 天天在线91| 国产精品探花色| 日韩人妻精品久久久久| 无码九九九九| 国产亚洲女v在线观看| 人人爱操| 人人操人人精品影片| 性猛交| 黄色av网站在线播放| 日韩av女优在线免费一区| 啊啊啊啊二区好大| 国产精品自拍视频| 3p国产欧美99热| 99综合自拍| 91久久青青草原精品| 亚卅熟女乱色| 久久综合日韩亚洲欧美| 精品福利| 三级色综合| 夜夜嗨AV蜜臀av| 综合另类| 日韩97超碰中文字幕| 久久久久久人体| 国产精品99精品视频网站| 久久久九97| 爱妻综合网| 又大又大又大又粗爽高潮观看| 337p大胆噜噜噜噜噜91Av| 青青国产精品在线| 中文字幕乱码在线| 亚洲色吧网| 麻豆成人AV| 五月丁香啪啪| 青青操视频在线| 免费啪啪一级视频| 亚洲精品色| 欧美亚洲高清| 97爱欧美| 国产主播福利| 青青草日本中文字幕| 91模特在线观看| 第一高清av中文字幕| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 大香蕉92| 国产一级不卡在线观看| 超碰在97| av毛片aaaaa免费看| 久久色一区| 后入国产| 欧美综合第一| 国产一级137片内射麻豆| 91成人社区| 韩国女主播青草在线| 91在线秘 男同| 91国产大片| 不卡av在线中文字幕| 牛牛久久国产精品视频一二三| 色哟哟AⅤ| 久久人妇| 久久久国产成人一区二区三区在线 | 夜夜青青无码影院| 天天弄天天操| 日韩无码服务区| 东北丰满熟女国产一区| 1024午夜激情男人的天堂| 色香色欲天天综合网天天来吧| 91黄射| 日本岛国黄色网址| 黑人猛交| 96久久久精品| 在线国产一区二区av| 亚洲熟女综合一区二区| 求求你操操我| 影音先锋国产精品| 欧美岛国精品在线观看| 亚洲情色综合网| 丁香五月天社区| 久九九九九九九九热| 激情五月婷| 亚洲精品国产熟女| 午夜在线播放| 制服诱惑亚洲一区二区三区在线观看| 国产精品探花视频| 九九九九九九视频免费| 久久一区二区加油站| 无码日韩网站| 国产精品久久久久无码Av网曝门| 日日干夜夜操视频h| 人看人人摸人人操| 日韩情色一区二区| 精品二区三四区五电影 | 中国操逼无码| 粉嫩AV一区夜夜嗨| 91粉芽高清在线一区二区| 男人天堂2017| 人人操人人操人妻人| 亚洲永久AV无码精品秋霞| 国产亚洲99久久精品| 久久av无码| 91第一页| 97网站在线观看 | 熟女熟妇伦久久影院毛片一区二区| 天天色,天天干,天天干| 麻豆三极片| 九久久精| 97超级色碰碰| 曰韩精品九九无码| 伊人网综合在线视频| 亚洲中文字幕熟女| 亚洲天堂男| 欧美亚洲韩国视频十五区| 中文字幕十五区| 蜜臀精品1区2区| 水澄无码AV| 99碰碰| ?亚洲伊人伊成久久人综合网| 午夜操一操| 日本欧美不卡| 视频二区美腿制服人妻欧美| 91人妻人人妻| 亚洲乱熟女一区二区三区大香蕉| 中文字幕丰满人妻日本| 性色综合网| 超碰97人妻自拍| 一区二区不卡免费| 欧美aⅴ99久久黑人专区| 长长久久88视频| 99操逼| 国产呦精品一区二区三区下载| 吖在线不卡一区二区国产剧情| 91福利网在线观看| 日本一区二区不卡| 亚洲欧美日韩免费观看| 国产日韩精品suv| 久久久久少妇| 日韩无码服务区| 国产女主播视频在线观看| 久久久∴| 亚洲凸凹超碰成人| 久久伊人在线五区| 99久久综合| 午夜福利在线视频1000| 蜜臀99999| 国产传媒av天美传媒在线| 91高清欧美| 人人妻人人澡人人爽久久av| 91天天综合日韩欧美| 亚洲色图 91| 加勒比海人人操超碰在线| 久久精品超碰| 亚洲丝袜诱惑| {男男暴菊gay无套网站| 亚洲色系另类精品国产| 日韩欧美中文日韩欧美色| 国语对白在线播放视频| 黄片色区软件| 日韩成人无码| 欧美偷拍区| 豆花视频操逼网址| 日本东京热久久久电影| 人妻少妇久久中文字幕一区二区 麻豆| 亚洲无码日韩电影| 国产精品一二三区18| 乱论91| a在线观看| 91 丝袜在线| 97视频620| 91干熟女| 十八禁网站在线| 亚洲性猛| 香蕉大久久久| 色与欲影视| 男女日B国产| 在线αⅴ| 成人性爱全视频观看| 99热久| 一区中文字幕二区日韩| 99蜜桃臀久久久欧美精品网站| 亚洲黄日韩无码专区| 10000部十八禁看电影| 五月婷婷青青草娱乐伊人| 久久久久深夜无码| av三级电影在线播放| 国产熟女完整版中字| 99久久综合网| 秋霞午夜视频一区二区| 91热热色| 精品日韩中文在线| 九九伊人网| 91爱看| 99999精品| 丝袜美腿制服人妻二区中文字幕| 亚洲操人| 国产一区二区久久| 中文字幕一区二区视频在线观看| 中文字幕乱在线伦视频中文字幕乱码在线| 超碰99在线观看| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 久干9操| 综合一区中亚洲国产成人综合精品| 97综合在线观看| 97国产精选| 欧美精品99久久久**| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 久久欲| 大香蕉97久久| 精品人妻视频一区二区在线播放| 传媒在线观看一区二区三区| 国产高清无码一区三区二区| 亚洲无套久久嗯嗯| 久久久无码精品人妻二区| 91肉丝| 色婷久久| 麻豆天美AV传媒第一页| 翔田千里无码中出中文字幕| 激情综合亚洲| 国产精品高朝久久久久久久| 久久欲| 久久一区无码| 超碰色97| 五月天激情影院| 蜜桃狠狠色伊人亚洲综合 | 一区二区三区在线美女| 日han少妇无码| 亚洲一区在线观看欧洲 | 欧美性爱日韩性爱| 欧美在线啊啊啊| 日本精品中文字幕视频| 欧美专区在线| 99热这里只有精品1| 国产精品久久久久久久毛片1| 曰本熟女视频| 妇女性内射冈站HDWWWCOM| 色五月婷婷久久| 91天美免费| 9l视频自拍9l九色成人| 蜜臀va69| 亚洲 中文字幕 精品| 大香蕉婷婷| 超碰在线91| 婷婷五月花| 青娱乐91| 九九九九九九九九九九九免费国产| 伊人性在线视频| 五月天激情影院| AV女资源| 国产11页| 1000部熟女视频在线观看| 4141514逼喷水三级片| 大香蕉线| 91人妻丝袜无码| 伊人操你| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 欧美无圣光在线| 永久免费av无码网站国产app| 97超碰在线资源网站| AAAAAAAAA黄片| 日本在线伊人啪啪| 中文字幕日韩国产传媒欧美精品| 人妻偷拍一区二区三区| 亚洲人久久久网| 操人91| 天天插网| 久久久久深夜无码| 五月香婷婷| 国产精品视频自拍在线| 国产女人9999| 美中韩AV综合网| 黑人美精品 A片| 欧美自拍网| 清纯唯美激情四射| 秋霞曰韩R级| 久这精品中文在线观看视频| 午夜福利在线视频1000| 久久婷婷综合国际产色怕| 91丝袜在线观看| 激情久久日韩精品中文字幕麻豆| 国内毛片免费h片在线| 亚洲欧美日韩制服另类| 久热精品在线| 天堂在线一区二区| 日本高清久久| 午夜福利在线合集| 亚洲天堂久久久久久粉红视频| 欧美 日韩 另类 亚洲| 久热免费视频| 333kkkk·亚洲com久久| 91被操| 欧美丝袜亚洲| 国桃视频产巨乳精品一区二区在线| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 日韩成人精品中文字幕| 色综合久久av| 色欧洲| 亚洲天在线| 日本三级日本三级三级人妇四虎| 亚洲第一成人影院色播| 色色毛片| 日韩熟女精一区二区三区不卡| 欧洲精品一区二区三区| 夜夜夜久久| 浪人综合网| 岛国福利在线精品播放| 色九九久九九| 福利大香蕉| 欧中日成人免费影视| 麻豆人妻精品一区二区| 粉嫩粉嫩一区性色AV片| 岛国免费黄色网址| 日韩熟女精一区二区三区不卡| 国产后入清纯| 91网18| 欧美日韩黄色片一区二区三区四区人与兽做爱 | 综合情欲网| 亚洲限制级| 伊人久久大香蕉线AV五月天| 9999免费精彩视频| 国产高清精品福利| 黄色免费网页无码| 狠狠操夜夜| 欧美AAAA黄片| 国产精品久久久吖| 大香蕉久久| 91爱| 欧美日韩婷婷中文| 亚洲黑丝在线| 日本在线一二| 五月天婷婷久久| 激情五月丁香五月| 精品超碰国产| 日韩av影片在线观看| 自拍偷拍亚洲熟女妇人精品| www.狠狠| 激情丁香婷婷| 伊人影院中文字幕| www.97在线| 情侣开房子拍 日韩无码 女的很漂亮| 久久一二三四五六七八九区区区 | 中国一区二区亚洲人妻| www.91逼逼.com| 亚洲欧洲日韩国产自在线| 中国一级操逼视频| 夜嗨影院| 99视频自拍| A片三级无码| h在线看免费版在线看| 久久日韩毛| 情色AV电影| 久久综合精品一区二区三区| 夜夜操91744565| 性色中出| 精品人妻视频一区二区三区蜜桃视频| 欧美久久婷| 二三四区精品| 一级黄碟| 蜜臀久久99精品久久久久电影| 啊啊啊啊,啊啊好多水| 欧美日韩亚洲天堂| 激情av| 丁香五月综合| 2024人人操人人摸| 一区二区激情国产熟女 | 日本不卡一二区| 亚洲国产精品无石码久久| 久久亚洲中文字幕视频| 高清孕妇孕交 交| 白丝被操91| 国产精品免费美女视频| 亚洲偷拍自拍在线视频| 亚洲影视综合网| 欧美色图天堂网m| 97欧美色综合| 91狠狠综合久久| 免费成人在线观看91| 黄色免费网页无码| 中文字幕在线观看丝袜| 少妇 综合| 青青草字幕AV| 天美传媒婬乱在| 国产亚洲精品无码三区| 久久婷婷热| 亚洲情色图片区| 在线小说视频一区| 亚洲欧美高清无码| 色99在线| wwe 天天干.com| 18+91网站| 久久精品日韩| 3p国产欧美99热| 好吊色在线观看| 国产欧美日产一区二区三区 - 国产欧美日 | 麻豆天美91| 成人美女av| 蜜臀久久久久久999| 日本高清熟女久久一区| 久久99九九九九6666免费观看软件| 久久免费99精品久久久久久| 91一起操| 色综合加勒比四四季| 久久亚洲日韩熟女精品| 思思热在线视频免费| 狼人久草| 欧美日韩亚洲五月天婷婷| 操碰97| 日韩欧美午夜一区二区| 国产欧美精品日韩区二区麻豆天美| 日本欧美m v精品网站加| 亚州综合色| 天天干人妇| 色九月综合| 亚洲欧美日韩中文播放 | 九九热av| 影音先锋中文字幕日本好一区二区| 九九视品黄色| 777超碰| 破苞ⅩXXX性无码动漫无码| 99精品丰满人妻| 日本孕妇一区二区视频操逼免费看 | 久久99国产精品| 韩国成人精品久久久免费看| 色老汉色| 亚洲交换| α√在线| 午夜AV污污污| 亚洲AV秘 精品久久老牛影视| 97午夜剧场日韩| 美女诱惑久久| 91 刺激在线| 人妻人久久精品中文字幕| 成人a大片在线观看| 亚洲淫色网中文| 在线观看一级α片刺激高潮视频| 美女黄页| 日语五十路和六十路亚洲国产精品| 全球成人中文在线| 黄站在线免费观看| 5278欧美一区二区三区| 中文字幕十五区| 国产中文字幕在线点播| 欧美无圣光在线| 97精| 台湾佬中文娱乐自偷自拍| 精品九区| 97国产色综合| 国内毛片欧美香蕉精品| 91啪9色| 69av一区二区三区| 亚州成人a∨| 亚洲天堂在线怕怕视频| 人人妻人人色| 欧美伊人久久综合网| 天天摸天天舔天天操| 中文字幕五月婷婷免费| 超碰97欧美日韩| 女人高潮大叫一级毛片| 97精品人妻一二三四| 天天日少妇逼AV| 九九九九九九九九九国产精品 | 久久久久日本视| 欧美日韩大香蕉| 日本一区99| 日韩色欲久久一二三四区| 一二视频神马久久传媒| 一级黄色牲爱A级片| 综合亚州欧美| 99re视频在线观看这里只有精品| 清纯唯美亚洲综合| 色好看av| 国产中文大片资源中文字幕| 国产精品国产| 国内自拍 日韩激情 99| 色香欲综合| 五月天伊人| 免费一级黄色录像影片| 神马久久免费电影观看| 激情婷婷五月天| 欧亚无码视频| 久久久久96| 午夜激情床戏激情| 亚洲玖玖爱| 97高清啪啪| 717影院理论午夜伦八戒| 91狠狠综合久久| 东北女人被操| 自拍鲍鱼一区在线高清观看免费| 美女十八禁| 密臀在线免费观看| 亚洲最新av无码成人精品区| 久久久不卡| 97在线观看免费视频l| 亚洲日韩成人性爱视频| 色综合av综合久久| 少妇高潮喷水无套久久久久久| 色吧五月| 任你爽视频| 日韩精品99999| 亚一综合久久久久久久久久| 国产97在线 | 亚洲| 久久久婷婷| 五月丁香激情综合| 亚洲无码 国产无码| 欧美一二级| 精品久久久久黄少妇| 久久夜黄色无码A级大片| 色香AV| 在线观看啊啊啊啊啊| 91亚洲不卡一区| 国产福利第一视频| 又大又长又粗又爽又黄| www欧美91| 熟妇高潮二区三区| 91 国产丝袜在线放观看| 成人av动漫在线观看| 国产精品无码av嫩草| 91精品人妻一区二区三区蜜桃| 天天色踪合| 亚洲综合99999| 美日韩成人| 性爱1区| 伊人网综合在线视频| 操碰97| 大香蕉综合网| 国内操逼视频二区| 116美女午夜| 69精品少妇一区二区三区蜜桃| 激情五月天插| 亚洲av国产av综合av卡| AV中亚| 自拍啪啪视频| 国产精品久久久久999| 免费看污网址| 欧美精品在线观看| 久久久艹艹艹| 一道本久久棕合爱| 国产大学生高潮在线播放| 亚洲av影院在线观看| 3d成人精品一区二区| 人妻性爱一区二区| 人人模人人看| 91中出| 人妻欧美| 加勒比海色香蕉婷婷| 一区二区三区麻豆| nuu12国产麻豆精品| 超碰 国产熟女精品一区| 亚洲天堂性爱| 厕所偷拍在线| 久久夜色一区二区| 久无码| 自拍丝袜美腿人妻| AV在线资源| 97色论| 欧美91在线+|+欧美| 男人的天堂2000| 国产成自自拍在线观看| 精品然女一区二区| 天堂射| 久热久| 看看日B真人视频| 99视频自拍区| 熟妇一区,二区,三区。| 欧美色图片色哟哟| 97免费视频在线| 日本一区二区中文字幕久久| 国产精品九九九| 欧美成人免费在线观看| 熟妇xxxxx性春色| 黄色AAAAA欧美| 亚洲AV成人无码一区二区三区在线观看 | 久久女人视频| 少妇500双飞99| 丰满人妻一区| 一本色道人妻久久| 色香欲天天天天综合色| 久久影视二区三区行押| 就去色综合| 91精品国产91久久青草| 久久免费99精品久久久久久| 夜夜操夜夜爽夜夜高潮| 农村女一级毛卡片| 尤物黄色在线观看网站| 性做久久久久久久| 免费视频a级毛片免费视频| 色色色综合| 欧美大香蕉97| 久久久久久久久久久久久久久久9 亚洲成人妻日韩在线 | 日韩啊V| 国产亚洲精品美女久久久| 首页中文字幕中文字幕免费| 免费综合亚洲中文| 精品一区二区三区最新| 欧美国产操逼| 噜噜噜亚洲精| 粉嫩av平台| 日本亚洲熟女视频| 好吊色在线观看| 学生妹天天看| 97欧美|