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

ARTICLE DETAIL

資訊詳情

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

Redis深度實(shí)戰(zhàn):從數(shù)據(jù)結(jié)構(gòu)到高可用架構(gòu)與緩存治理

Redis深度實(shí)戰(zhàn):從數(shù)據(jù)結(jié)構(gòu)到高可用架構(gòu)與緩存治理 說(shuō)個(gè)實(shí)話Redis 是被低估得最厲害的一個(gè)中間件。很多人學(xué)了幾天會(huì)了SET和GET知道五種數(shù)據(jù)類型就以為自己入門(mén)了結(jié)果一到面試被問(wèn)“緩存穿透怎么解決”“主從切換會(huì)不會(huì)丟數(shù)據(jù)”或者一上線就被慢查詢、內(nèi)存暴漲、分布式鎖失效折騰到懷疑人生才發(fā)現(xiàn)自己根本沒(méi)摸到 Redis 的門(mén)。這篇筆記不是給你背面試題的是按我實(shí)際折騰 Redis 的路徑整理的從安裝選型、數(shù)據(jù)類型底層邏輯到高可用架構(gòu)、緩存治理、常見(jiàn)故障排查一次講透。內(nèi)容適用于用 Redis 做緩存、做分布式鎖、做排行榜、做消息隊(duì)列的開(kāi)發(fā)者和運(yùn)維同學(xué)也適合準(zhǔn)備大廠面試、想系統(tǒng)梳理 Redis 知識(shí)體系的人。我盡量用大白話講清楚每個(gè)關(guān)鍵選擇的“為什么”而不是只告訴你“怎么做”。1. 學(xué)習(xí)路線與整體設(shè)計(jì)思路拆解1.1 為什么你該把 Redis 當(dāng)“數(shù)據(jù)結(jié)構(gòu)服務(wù)器”來(lái)學(xué)很多教程開(kāi)場(chǎng)就說(shuō)“Redis 是高性能 KV 緩存數(shù)據(jù)庫(kù)”這個(gè)定位本身沒(méi)錯(cuò)但它直接把你的思路帶窄了。如果只把 Redis 當(dāng)緩存那你永遠(yuǎn)只會(huì)用它來(lái)存字符串遇到實(shí)際需求就想“這玩意兒是不是不適合”——排行榜用 ZSet、去重用 Set、消息隊(duì)列用 List 或 Stream、分布式 ID 用 INCR、附近的人用 GEO這些都不是“緩存”而是數(shù)據(jù)結(jié)構(gòu)能力。我建議把 Redis 理解成“一個(gè)跑在內(nèi)存里的數(shù)據(jù)結(jié)構(gòu)服務(wù)器”。它和 MySQL 最大的區(qū)別不是快而是它的數(shù)據(jù)模型本身就是為特定數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)的你往里面放 String、Hash、List、Set、ZSet它幫你維護(hù)增刪改查、排序、聚合、去重這些能力。學(xué) Redis 的第一原則就是拿到一個(gè)需求先判斷“這個(gè)數(shù)據(jù)結(jié)構(gòu)適不適合用 Redis 表達(dá)”而不是“能不能塞進(jìn)緩存里”。帶著這個(gè)思路學(xué)習(xí)路徑就清晰了先掌握命令和數(shù)據(jù)結(jié)構(gòu)再理解持久化和過(guò)期策略接著上高可用和集群最后回到緩存治理和分布式鎖這些真實(shí)場(chǎng)景。每一步都在解決前一步帶來(lái)的新問(wèn)題是一條完整的鏈路。1.2 按階段拆解基礎(chǔ)、進(jìn)階、實(shí)戰(zhàn)三步走第一階段是基礎(chǔ)目標(biāo)是“會(huì)用”。這個(gè)階段只需要搞定三件事安裝、五種數(shù)據(jù)類型、常用命令。你可以把 Redis 跑起來(lái)然后用redis-cli或者可視化工具比如 Another Redis Desktop Manager手動(dòng)敲命令把每種數(shù)據(jù)類型的增刪改查、過(guò)期時(shí)間、TTL 都過(guò)一遍。這一步不需要背命令大全先把最常用的三十個(gè)命令用到條件反射就行。第二階段是進(jìn)階目標(biāo)是“懂原理”。這個(gè)階段要搞清楚三塊內(nèi)容Redis 為什么快單線程 IO 多路復(fù)用、數(shù)據(jù)怎么不丟RDB 和 AOF、內(nèi)存不夠了怎么辦過(guò)期策略和淘汰策略。這三個(gè)問(wèn)題是面試高頻題也是你以后排查性能問(wèn)題和設(shè)計(jì)緩存方案的理論基礎(chǔ)。很多人在這個(gè)階段容易犯的錯(cuò)是只背概念不結(jié)合命令去驗(yàn)證。比如你背了“Redis 默認(rèn)有 16 個(gè)庫(kù)”但你不知道SELECT 1切庫(kù)之后AOF 重寫(xiě)、RDB 快照到底怎么處理多庫(kù)數(shù)據(jù)你背了“LRU 淘汰”但你不知道 Redis 的 LRU 是近似實(shí)現(xiàn)不是嚴(yán)格 LRU。第三階段是實(shí)戰(zhàn)目標(biāo)是“會(huì)排障”。這一階段要圍繞真實(shí)場(chǎng)景展開(kāi)主從怎么搭、哨兵解決了什么問(wèn)題、集群的槽位是怎么分配的、緩存穿透擊穿雪崩分別怎么應(yīng)對(duì)、分布式鎖怎么實(shí)現(xiàn)才不會(huì)出事故。這個(gè)階段的標(biāo)志是你開(kāi)始能看懂redis.log里的告警信息能根據(jù)INFO命令的輸出判斷系統(tǒng)健康度能在 Redis Desktop Manager 的連接失敗提示里快速定位問(wèn)題。我個(gè)人建議這個(gè)階段配合 Docker 來(lái)做實(shí)驗(yàn)因?yàn)橹鲝摹⑸诒?、集群的搭建?huì)反復(fù)摧毀重建用容器最省心。2. 環(huán)境準(zhǔn)備安裝、選型與可視化工具的坑2.1 Windows 安裝別去官網(wǎng)下“官方 Windows 版”先說(shuō)一個(gè)很多人踩過(guò)的坑Redis 官方是不支持 Windows 的官網(wǎng)只提供 Linux 源碼包。你在網(wǎng)上搜“redis windows 下載”搜到的那些.exe安裝包基本都是第三方移植版或者微軟舊版維護(hù)分支。不是說(shuō)不能用而是要選對(duì)來(lái)源。如果你只是本地學(xué)習(xí)我推薦最常見(jiàn)的方案去 Redis 的 Windows 移植倉(cāng)庫(kù)比如 tporadowski/redis下載 zip 包解壓后直接運(yùn)行redis-server.exe默認(rèn)端口 6379 就能起來(lái)redis-cli.exe就是命令行客戶端特別適合新手。注意兩個(gè)細(xì)節(jié)第一這個(gè)移植版大多停留在 Redis 5.x 或 6.x 版本學(xué)習(xí)和單機(jī)測(cè)試沒(méi)問(wèn)題但它和 Linux 官方版在高版本特性上會(huì)有差異生產(chǎn)環(huán)境千萬(wàn)別用第二啟動(dòng)后進(jìn)程會(huì)一直占著控制臺(tái)窗口關(guān)掉窗口 關(guān)掉服務(wù)學(xué)習(xí)階段無(wú)所謂但你最好知道有redis-server --service-install這種以 Windows 服務(wù)方式運(yùn)行的命令。Linux 上安裝是更正經(jīng)的做法。以 CentOS 和 Ubuntu 為例源碼編譯是標(biāo)準(zhǔn)的安裝路徑下載源碼包、make、make install。編譯之前記得裝好gcc和make否則會(huì)報(bào)一堆讓人頭大的編譯錯(cuò)誤。編譯安裝完Redis 的可執(zhí)行文件會(huì)放在/usr/local/bin配置文件在源碼目錄下的redis.conf。這里有個(gè)常見(jiàn)坑很多人直接./redis-server啟動(dòng)結(jié)果發(fā)現(xiàn)根本沒(méi)有配置文件生效所有的數(shù)據(jù)持久化和后臺(tái)運(yùn)行配置都失效了。正確姿勢(shì)是./redis-server /path/to/redis.conf顯式指定配置文件。2.2 Docker 方式學(xué)習(xí)高可用架構(gòu)最快的路徑如果你要學(xué)主從、哨兵、集群我強(qiáng)烈建議直接用 Docker。手寫(xiě)配置文件、在一臺(tái)機(jī)器上起多個(gè)實(shí)例不是不行但改端口、改 pid 文件、調(diào)日志路徑會(huì)消耗大量耐心。用 Docker 的話一條docker run命令就是一個(gè)獨(dú)立實(shí)例網(wǎng)絡(luò)隔離也是天然的。舉個(gè)例子搭建一主兩從的 Redis 主從結(jié)構(gòu)# 創(chuàng)建自定義網(wǎng)絡(luò)方便容器間通過(guò)容器名互相訪問(wèn) docker network create redis-net # 主節(jié)點(diǎn) docker run -d --name redis-master --network redis-net -p 6379:6379 redis:7.0 redis-server --appendonly yes # 從節(jié)點(diǎn)1 docker run -d --name redis-slave1 --network redis-net -p 6380:6379 redis:7.0 redis-server --appendonly yes --slaveof redis-master 6379 # 從節(jié)點(diǎn)2 docker run -d --name redis-slave2 --network redis-net -p 6381:6379 redis:7.0 redis-server --appendonly yes --slaveof redis-master 6379啟動(dòng)完成后進(jìn)入主節(jié)點(diǎn)容器執(zhí)行INFO replication你就能看到兩個(gè)從節(jié)點(diǎn)已經(jīng)連接上來(lái)。用 Docker 做這種實(shí)驗(yàn)的好處是環(huán)境干凈、銷毀容易、模擬故障特別方便。比如你直接docker stop redis-slave1就能觀察主從斷開(kāi)后主節(jié)點(diǎn)有沒(méi)有報(bào)錯(cuò)、從節(jié)點(diǎn)重連后的數(shù)據(jù)同步情況。注意Docker 方式雖然方便但你要分清兩個(gè)概念——--slaveof這是主從復(fù)制的配置不是集群的配置。主從復(fù)制解決的是“數(shù)據(jù)多副本冗余”集群解決的是“數(shù)據(jù)分片存儲(chǔ)”。很多人把這兩個(gè)搞混后面看集群文檔時(shí)一臉懵。2.3 可視化客戶端Redis Desktop Manager 的替代品Redis Desktop Manager簡(jiǎn)稱 RDM是搜索最多、知名度最高的 Redis 可視化客戶端但它的坑也不少。2022 年起新版 RDM 開(kāi)始收費(fèi)如果你搜“redis desktop manager 免費(fèi)版”或者“redis desktop manager 開(kāi)源舊版”能找到的是最后一個(gè)免費(fèi)開(kāi)源版本大概停在 2022 年 6 月左右。當(dāng)年很多人就在這個(gè)坎上栽了跟頭——下載安裝了新版一打開(kāi)就彈試用提醒還看不到 key 列表的完整功能。我實(shí)際用下來(lái)的推薦是如果只是日常學(xué)習(xí)直接用Another Redis Desktop Manager這是一個(gè)完全開(kāi)源免費(fèi)、持續(xù)維護(hù)的替代品。它的 UI 比舊版 RDM 更現(xiàn)代支持 SSH 隧道、支持可視化查看 stream、支持命令執(zhí)行的實(shí)時(shí)監(jiān)控對(duì)單機(jī)、集群、哨兵模式都有不錯(cuò)的支持。當(dāng)然如果你只有幾臺(tái)服務(wù)器、鍵也不多用命令行的redis-cli其實(shí)完全夠可視化客戶端的核心價(jià)值是讓你看清 key 的分布、內(nèi)存占用和過(guò)期時(shí)間排查問(wèn)題時(shí)特別直觀。3. 五大數(shù)據(jù)類型與底層實(shí)現(xiàn)邏輯3.1 String不只是字符串的三層編碼String 是一個(gè)繞不開(kāi)的基礎(chǔ)但你真不一定了解它。Redis 的 String 除了存文本還能存數(shù)字配合 INCR/DECR 做計(jì)數(shù)器、存二進(jìn)制數(shù)據(jù)比如圖片的字節(jié)流但容易讓你翻車的點(diǎn)在于它的內(nèi)存編碼。Redis 對(duì) String 做了三種內(nèi)部編碼int純數(shù)字、embstr短字符串、raw長(zhǎng)字符串。前兩種字節(jié)數(shù)少存儲(chǔ)緊湊超過(guò) 44 字節(jié)會(huì)自動(dòng)轉(zhuǎn)成raw。這個(gè) 44 字節(jié)不是隨便定的它和 Redis 內(nèi)部redisObject結(jié)構(gòu)的對(duì)齊、內(nèi)存分配器的分配粒度有關(guān)你不需要死記但你得理解Redis 對(duì)短字符串做了極致優(yōu)化所以設(shè)計(jì) key 時(shí)別弄?jiǎng)虞m幾百字節(jié)的 value除非業(yè)務(wù)必須。實(shí)際測(cè)試下來(lái)一個(gè)幾百字節(jié)的 value 比短字符串多占 3~5 倍內(nèi)存這在千萬(wàn)級(jí) key 的緩存里就是幾十 GB 的差距。String 最常見(jiàn)的生產(chǎn)場(chǎng)景有三個(gè)緩存、計(jì)數(shù)器、分布式 ID。計(jì)數(shù)器用INCR時(shí)要留心INCR不準(zhǔn)的坑——這里說(shuō)的“不準(zhǔn)”不是 Redis 算錯(cuò)而是并發(fā)下的計(jì)數(shù)語(yǔ)義問(wèn)題。如果你用INCR做庫(kù)存扣減命令本身是原子的沒(méi)問(wèn)題但如果你先GET再SET這就是經(jīng)典的讀改寫(xiě)競(jìng)態(tài)丟更新就是必然結(jié)果。類似“瀏覽量 1”這種業(yè)務(wù)用INCR沒(méi)問(wèn)題但“基于當(dāng)前值做復(fù)雜計(jì)算再寫(xiě)回”就必須用 Lua 腳本或者加鎖。3.2 Hash對(duì)象類數(shù)據(jù)的“常規(guī)武器”和 Redis 的“乞丐版分片”Hash 在業(yè)務(wù)里最典型的應(yīng)用是存儲(chǔ)對(duì)象。比如一個(gè)用戶信息最笨的存法是SET user:1001 {name:tom,age:18}問(wèn)題是改一個(gè)字段就要整體覆蓋整個(gè) JSON浪費(fèi)網(wǎng)絡(luò)和內(nèi)存。用 Hash 存就變成了HSET user:1001 name tom age 18改哪個(gè)字段就只更新哪個(gè)字段還能單獨(dú)對(duì)字段設(shè)置過(guò)期時(shí)間嗎不行Hash 本身沒(méi)有字段級(jí)別的 TTL這是它和 String 的另一個(gè)取舍。Hash 內(nèi)部編碼有兩種ziplist和hashtable。當(dāng)字段數(shù)量少、字段值小的時(shí)候用ziplist緊湊存儲(chǔ)字段多了或者值大了自動(dòng)轉(zhuǎn)成hashtable。這里有一個(gè)用 Hash 做“小分片”的思路當(dāng)單個(gè) key 的 value 過(guò)大比如一個(gè)大 List 存了百萬(wàn)條記錄會(huì)導(dǎo)致讀寫(xiě)這個(gè) key 的耗時(shí)增加這在 Redis 里叫“大 key 問(wèn)題”。解決方案之一就是把一個(gè)大集合拆成多個(gè)小 Hash。舉例來(lái)說(shuō)如果你要存一個(gè)用戶的行為記錄一天幾十條不要用SET user_actions:1001 大JSON而是按天分片HINCRBY user_actions:20250120:1001 type_click 1這樣每個(gè) key 只負(fù)責(zé)一天的增量數(shù)據(jù)。這個(gè)思路在任何需要給單個(gè) key 瘦身的場(chǎng)景都通用理解它能幫你解決一大批“Redis 查詢?cè)絹?lái)越慢”的問(wèn)題。3.3 List 和 Stream隊(duì)列功能到底用誰(shuí)List 的LPUSHRPOP組合是最簡(jiǎn)單的生產(chǎn)者消費(fèi)者模式配合BLPOP還能實(shí)現(xiàn)阻塞讀很多輕量級(jí)消息隊(duì)列就是用這個(gè)做的。但 List 做隊(duì)列有天然的毛病消息丟失沒(méi)有重試機(jī)制沒(méi)有消費(fèi)確認(rèn)消費(fèi)者崩了就永遠(yuǎn)丟了而且LRANGE翻頁(yè)取數(shù)據(jù)雖然方便但對(duì)長(zhǎng)列表是 O(N) 操作列表一長(zhǎng)就拖垮性能。所以 Redis 5.0 之后引入了 Stream它的設(shè)計(jì)目標(biāo)就是正兒八經(jīng)的消息隊(duì)列支持消費(fèi)者組、支持消息確認(rèn)ACK、支持 PEL待處理列表、支持持久化。如果你在做項(xiàng)目時(shí)需要一個(gè)“能用但不想引入 Kafka/RabbitMQ”的輕量隊(duì)列Stream 幾乎是唯一正解。我自己的建議是隊(duì)列非常簡(jiǎn)單的場(chǎng)景比如事件通知丟了也無(wú)所謂可以用 List要求消息不丟、要消費(fèi)組、要重試用 Stream。面試問(wèn)到“Redis 做消息隊(duì)列”你要能說(shuō)出這個(gè)演進(jìn)關(guān)系比單純背命令值錢(qián)多了。3.4 Set 和 ZSet從去重到排行榜Set 用來(lái)做去重和集合運(yùn)算交集、并集、差集典型場(chǎng)景是抽獎(jiǎng)、標(biāo)簽系統(tǒng)、共同好友。ZSet 比 Set 多了分值排序底層是跳躍表 哈希表跳躍表的時(shí)間復(fù)雜度是 O(log N)所以 ZSet 在百萬(wàn)級(jí)數(shù)據(jù)量下的排序操作依然很快。排行榜、實(shí)時(shí)熱點(diǎn)、延時(shí)隊(duì)列都是 ZSet 的主場(chǎng)。我要提醒一個(gè) ZSet 的坑同樣是ZADD如果你在寫(xiě)入時(shí)不控制 member 的規(guī)模一個(gè) ZSet 里有幾百萬(wàn)個(gè) member后續(xù)的ZRANGE、ZREM雖然單次很快但內(nèi)存占用會(huì)非常嚇人。ZSet 的成員越多跳躍表的指針開(kāi)銷越大單個(gè) member 的額外開(kāi)銷可能有幾十字節(jié)。所以設(shè)計(jì)上要注意排行榜類數(shù)據(jù)要么只保留 Top N用ZREMRANGEBYRANK定期清理要么按業(yè)務(wù)維度拆 key比如按天拆排行榜千萬(wàn)別讓一個(gè) ZSet 無(wú)限增長(zhǎng)。4. 高可用架構(gòu)主從、哨兵與集群4.1 主從復(fù)制REPLICAOF 背后的增量與全量同步主從復(fù)制解決的是“單點(diǎn)故障”問(wèn)題。主節(jié)點(diǎn)可讀可寫(xiě)從節(jié)點(diǎn)默認(rèn)只讀主節(jié)點(diǎn)把寫(xiě)操作同步給從節(jié)點(diǎn)。同步分兩種情況全量同步和增量同步。全量同步發(fā)生在從節(jié)點(diǎn)剛連接主節(jié)點(diǎn)、或者主從數(shù)據(jù)差距過(guò)大時(shí)。流程是從節(jié)點(diǎn)發(fā)送PSYNC命令主節(jié)點(diǎn)執(zhí)行BGSAVE生成 RDB 快照發(fā)給從節(jié)點(diǎn)從節(jié)點(diǎn)清空舊數(shù)據(jù)并加載快照然后主節(jié)點(diǎn)把快照生成期間新增的寫(xiě)命令存在復(fù)制緩沖區(qū)里再發(fā)給從節(jié)點(diǎn)。增量同步靠的是主從之間維護(hù)的復(fù)制偏移量如果偏移量還在緩沖區(qū)范圍內(nèi)只需要同步差額部分如果從節(jié)點(diǎn)斷連太久緩沖區(qū)里的數(shù)據(jù)已經(jīng)覆蓋了就得重新全量同步。這里有一個(gè)隱藏很深的坑如果從節(jié)點(diǎn)斷連時(shí)間很短但主節(jié)點(diǎn)的復(fù)制緩沖區(qū)太小默認(rèn) 1MB可通過(guò)client-output-buffer-limit replica調(diào)大也會(huì)觸發(fā)全量同步。全量同步一旦頻繁發(fā)生主節(jié)點(diǎn)要反復(fù) BGSAVE 傳輸數(shù)據(jù)CPU 和網(wǎng)絡(luò)都會(huì)被打滿導(dǎo)致主節(jié)點(diǎn)阻塞。生產(chǎn)環(huán)境出現(xiàn)“主從反復(fù)全量同步”的情況第一件事就是去看INFO replication里的偏移量差值和緩沖區(qū)大小。4.2 哨兵自動(dòng)故障轉(zhuǎn)移的“哨兵進(jìn)程”主從復(fù)制解決了數(shù)據(jù)冗余但主節(jié)點(diǎn)掛了從節(jié)點(diǎn)不會(huì)自動(dòng)頂上需要人工切換。哨兵Sentinel就是來(lái)解決這個(gè)問(wèn)題的它是一個(gè)獨(dú)立進(jìn)程負(fù)責(zé)監(jiān)控主從節(jié)點(diǎn)的健康狀態(tài)在主節(jié)點(diǎn)掛掉后自動(dòng)從從節(jié)點(diǎn)中選舉出一個(gè)新主節(jié)點(diǎn)并把其他從節(jié)點(diǎn)重新指向新主節(jié)點(diǎn)。但哨兵不是萬(wàn)能的。它最被人質(zhì)疑的點(diǎn)是哨兵本身就是單點(diǎn)雖然可以部署哨兵集群而且故障轉(zhuǎn)移期間存在“腦裂”窗口。經(jīng)典場(chǎng)景主節(jié)點(diǎn)和哨兵之間的網(wǎng)絡(luò)發(fā)生分區(qū)哨兵認(rèn)為主節(jié)點(diǎn)掛了選舉出新的主節(jié)點(diǎn)但原主節(jié)點(diǎn)其實(shí)還活著還能接收寫(xiě)入等網(wǎng)絡(luò)恢復(fù)后原主節(jié)點(diǎn)的數(shù)據(jù)就和新主節(jié)點(diǎn)不一致了這部分丟失的數(shù)據(jù)無(wú)法找回。所以涉及錢(qián)的業(yè)務(wù)比如扣庫(kù)存、交易流水不能只靠 Redis 主從 哨兵保證強(qiáng)一致這是架構(gòu)層面的問(wèn)題。用 Docker 搭建哨兵的時(shí)候最容易被坑的是配置文件里的sentinel monitor master-name host port quorum這個(gè)host不能寫(xiě)127.0.0.1因?yàn)樯诒枰ㄖ捌渌鄙诒汀捌渌睆墓?jié)點(diǎn)連接主節(jié)點(diǎn)。在容器環(huán)境里主機(jī)地址要寫(xiě)容器網(wǎng)絡(luò)中可達(dá)的別名的地址比如redis-master。這個(gè)細(xì)節(jié)我當(dāng)年調(diào)試了一下午白屏的時(shí)間都浪費(fèi)在地址可達(dá)性上。4.3 集群數(shù)據(jù)分片的槽位分配以及為什么集群也有“一票否決”Redis Cluster 和主從哨兵是兩套不同的體系。Cluster 把整個(gè)數(shù)據(jù)空間分成 16384 個(gè)槽位每個(gè)節(jié)點(diǎn)負(fù)責(zé)一部分槽位key 通過(guò)CRC16(key) % 16384計(jì)算屬于哪個(gè)槽。寫(xiě)請(qǐng)求如果落到了非負(fù)責(zé)節(jié)點(diǎn)節(jié)點(diǎn)會(huì)返回MOVED錯(cuò)誤客戶端要跟著重定向。這是 Cluster 和單機(jī)模式最大的體驗(yàn)差異——你的客戶端必須支持集群協(xié)議比如 Jedis 的JedisCluster、Lettuce 的集群模式否則會(huì)出現(xiàn)各種莫名其妙的連接和寫(xiě)入失敗。Cluster 本身自帶主從冗余每個(gè)主節(jié)點(diǎn)可以掛一個(gè)或多個(gè)從節(jié)點(diǎn)主掛了從自動(dòng)頂上。但要注意Cluster 的可用性判定比哨兵更嚴(yán)格如果一個(gè)主節(jié)點(diǎn)和它的所有從節(jié)點(diǎn)同時(shí)掛掉整個(gè)集群就會(huì)進(jìn)入不可用狀態(tài)即使其他槽位的主節(jié)點(diǎn)都活著。這就是少數(shù)派不可訪問(wèn)導(dǎo)致集群不可用的經(jīng)典場(chǎng)景。查詢操作可以通過(guò)CLUSTER SLOTS命令看清楚每個(gè)槽位的負(fù)責(zé)節(jié)點(diǎn)這個(gè)命令排障時(shí)非常好使。Docker 部署集群有幾個(gè)注意點(diǎn)端口映射不能只映射 6379因?yàn)榧和ㄐ乓?16379總線端口不映射會(huì)造成節(jié)點(diǎn)間通信失敗容器重啟后 IP 變化會(huì)讓集群變的不可用解決辦法是給容器設(shè)置固定 IP--ip或使用 Docker Swarm / Kubernetes 的穩(wěn)定 DNS 名稱。這些問(wèn)題在本地實(shí)驗(yàn)時(shí)不明顯但如果你用 KubeSphere 之類的平臺(tái)去搭建 Redis 集群就會(huì)頻繁遇到“集群狀態(tài)正常但客戶端連不上”的怪事排查到最后基本都是網(wǎng)絡(luò)標(biāo)識(shí)變動(dòng)引起的。4.4 從“會(huì)搭”到“會(huì)調(diào)”配置參數(shù)背后的取舍搭建完高可用架構(gòu)你才能真正讀懂配置文件里的各種參數(shù)。比如maxmemory和maxmemory-policy決定了內(nèi)存耗盡后的行為——allkeys-lru是全局近似 LRU 淘汰volatile-ttl只對(duì)設(shè)置了過(guò)期時(shí)間的 key 淘汰。再比如appendonly yes開(kāi)啟 AOF 后appendfsync everysec表示每秒刷盤(pán)一次這是性能和可靠性的折中方案always最安全但性能下降明顯no交給操作系統(tǒng)決定但可能丟失一秒鐘的數(shù)據(jù)。關(guān)于 AOF 和 RDB我的建議是生產(chǎn)環(huán)境兩者都開(kāi)RDB 做快速恢復(fù)的冷備AOF 做災(zāi)備的精確日志。只開(kāi) AOF 的坑是AOF 文件會(huì)越來(lái)越大雖然 rewrite 能瘦身但如果宕機(jī)時(shí) AOF 文件有損壞Redis 可能啟動(dòng)失敗需要先運(yùn)行redis-check-aof --fix修復(fù)。只開(kāi) RDB 的坑更明顯兩次快照之間的數(shù)據(jù)全部丟失。我遇到過(guò)把 RDB 快照間隔設(shè)成 900 秒的項(xiàng)目一次斷電丟了十五分鐘緩存雖然后臺(tái)有 MySQL 兜底但那個(gè)時(shí)間段的請(qǐng)求壓力直接把 DB 打崩了這個(gè)教訓(xùn)說(shuō)明持久化參數(shù)不是隨便填的。5. 緩存治理穿透、擊穿、雪崩與分布式鎖5.1 緩存三大災(zāi)難的應(yīng)對(duì)不是靠 Redis 本身緩存穿透、擊穿、雪崩這三個(gè)問(wèn)題面試必問(wèn)但很多人回答得過(guò)于套路化。我按自己的經(jīng)驗(yàn)說(shuō)說(shuō)區(qū)別和處理優(yōu)先級(jí)。緩存穿透是查一個(gè)根本不存在的數(shù)據(jù)緩存里沒(méi)有數(shù)據(jù)庫(kù)里也沒(méi)有請(qǐng)求直接打到 DB。對(duì) Redis 而言它根本沒(méi)壓力壞的是 DB。常見(jiàn)的解法有三種緩存空值設(shè)置一個(gè)較短的過(guò)期時(shí)間比如 5 分鐘、布隆過(guò)濾器一種空間效率很高的概率型數(shù)據(jù)結(jié)構(gòu)不存在則直接短路、參數(shù)校驗(yàn)攔截非法請(qǐng)求。我個(gè)人覺(jué)得業(yè)務(wù)層參數(shù)校驗(yàn)是最先該做的布隆過(guò)濾器適合 key 基數(shù)大的場(chǎng)景空值緩存適合 key 容易被窮舉暴力的場(chǎng)景。緩存擊穿是某一個(gè)熱點(diǎn) key 過(guò)期瞬間大量請(qǐng)求直接打到 DB。注意是“單個(gè) key”不是“一批 key”。應(yīng)對(duì)的核心思路是“不讓 DB 扛流量”一是互斥鎖只有一個(gè)線程去查 DB 重建緩存其它線程等待或返回默認(rèn)值二是邏輯過(guò)期不讓 key 實(shí)際過(guò)期而是在 value 里塞一個(gè)過(guò)期時(shí)間戳后臺(tái)異步刷新適合對(duì)一致性要求不高的熱點(diǎn)數(shù)據(jù)。緩存雪崩是大量 key 同時(shí)過(guò)期或者 Redis 實(shí)例宕機(jī)導(dǎo)致流量直撲 DB。處理手法過(guò)期時(shí)間加隨機(jī)值比如SETEX key (base random(0,300))、熱點(diǎn) key 預(yù)熱、多級(jí)緩存兜底本地 Caffeine 再擋一層。在 Redis 本身宕機(jī)時(shí)多級(jí)緩存幾乎是唯一能在 Redis 恢復(fù)前保護(hù) DB 的手段否則你再怎么設(shè)計(jì)過(guò)期時(shí)間也擋不住洪水。5.2 分布式鎖SET NX EX 和 Lua 缺一不可說(shuō)到分布式鎖最常見(jiàn)的實(shí)現(xiàn)是基于SET key value NX EX seconds。注意這個(gè)命令必須是一條命令完成不能拆成SETNX再EXPIRE因?yàn)閮蓷l命令之間有間隙進(jìn)程崩了鎖就沒(méi)過(guò)期時(shí)間了死鎖就是這么來(lái)的。然后是釋放鎖很多人寫(xiě)成if (redis.call(GET, KEYS[1]) ARGV[1]) then return redis.call(DEL, KEYS[1]) else return 0 end為什么要用 Lua因?yàn)椤芭袛嘀凳欠袷亲约旱摹焙汀皠h除 key”是兩個(gè)操作拆開(kāi)執(zhí)行中間鎖過(guò)期了別的線程拿到了鎖然后你把這個(gè)別人的鎖刪了。這個(gè) bug 在并發(fā)稍高的場(chǎng)景下必現(xiàn)。用 Lua 把兩步合并成一個(gè)原子操作這是分布式鎖最底層的底線。還有兩個(gè)進(jìn)階問(wèn)題要心里有數(shù)。第一個(gè)是“鎖過(guò)期時(shí)間怎么設(shè)”業(yè)務(wù)執(zhí)行時(shí)間可能超過(guò)鎖的過(guò)期時(shí)間導(dǎo)致鎖被提前釋放解決辦法是“看門(mén)狗”機(jī)制——在持有鎖期間定期續(xù)期但這是 Redisson 這些客戶端庫(kù)實(shí)現(xiàn)的能力自己裸寫(xiě)要慎重。第二個(gè)是“主從切換鎖丟失”的問(wèn)題主節(jié)點(diǎn)拿到了鎖但數(shù)據(jù)還沒(méi)同步到從節(jié)點(diǎn)主節(jié)點(diǎn)掛了從節(jié)點(diǎn)頂上后鎖就沒(méi)了。Redisson 的 RedLock 試圖解決這個(gè)問(wèn)題但代價(jià)是復(fù)雜度陡增而且在大規(guī)模部署下正確性爭(zhēng)議一直存在。我的建議是能用數(shù)據(jù)庫(kù)唯一約束解決的業(yè)務(wù)就別用 Redis 分布式鎖用了就要接受它的“在極端故障下有鎖丟失風(fēng)險(xiǎn)”這個(gè)前提。5.3 序列化Redis 客戶端里最容易被忽視的性能瓶頸Java 用 Redis 時(shí)序列化方式直接影響你能存什么、占多少內(nèi)存。最常用的兩個(gè)StringRedisTemplate是純字符串讀寫(xiě)存 Java 對(duì)象時(shí)你得自己把對(duì)象轉(zhuǎn)成 JSONRedisTemplateGenericJackson2JsonRedisSerializer可以自動(dòng)把對(duì)象序列化成 JSON 存入取出來(lái)時(shí)反序列化回對(duì)象非常方便但代價(jià)是存儲(chǔ)的內(nèi)容里會(huì)帶一段class類型信息占用并不大但是讀出來(lái)的數(shù)據(jù)肉眼看起來(lái)也不是那么干凈。序列化還有一個(gè)隱藏痛點(diǎn)默認(rèn)的JdkSerializationRedisSerializerSpring Data Redis 默認(rèn)配置如果沒(méi)做任何定制是 Java 原生序列化二進(jìn)制格式占用空間大而且存進(jìn)去的東西你在可視化工具里完全看不懂全是\xAC\xED開(kāi)頭的一堆亂碼。我強(qiáng)烈建議任何項(xiàng)目都顯式配置 JSON 序列化方式除非你能忍受排查問(wèn)題時(shí)對(duì)著亂碼猜內(nèi)容。Python 連接 Redis 也有類似問(wèn)題用pickle序列化存進(jìn)去的數(shù)據(jù)別指望redis-cli能人類可讀??缯Z(yǔ)言讀寫(xiě)同一個(gè) key 時(shí)一定要統(tǒng)一序列化方案否則等著你的就是亂碼或者反序列化異常。5.4 Lua 腳本不是炫技是原子性的救命稻草Redis 的 Lua 腳本能力很多初學(xué)者不重視覺(jué)得“我是業(yè)務(wù)開(kāi)發(fā)用不上 Lua”。但實(shí)際上只要你的操作需要“讀當(dāng)前值 - 計(jì)算 - 寫(xiě)回”這樣的組合Lua 就是最優(yōu)雅的原子性保證。前面說(shuō)的分布式鎖釋放邏輯只是一個(gè)例子還有“限流器”INCR后判斷當(dāng)前計(jì)數(shù)是否超限超過(guò)則返回失敗整個(gè)過(guò)程塞進(jìn) Lua 里執(zhí)行就沒(méi)有并發(fā)下超發(fā)的問(wèn)題。Lua 在 Spring 中通常用DefaultRedisScript配合execute調(diào)用在 Python 里是redis.register_script。用 Lua 時(shí)有幾個(gè)細(xì)節(jié)容易踩坑第一Lua 腳本里要訪問(wèn) Redis key 必須通過(guò)KEYS[]數(shù)組傳入不能寫(xiě)在腳本里拼字符串否則 Redis 無(wú)法預(yù)分配槽位第二腳本執(zhí)行期間會(huì)阻塞 Redis千萬(wàn)別寫(xiě)死循環(huán)或者毫秒級(jí)都算慢的重計(jì)算第三腳本的“確定性”要求它不能在執(zhí)行過(guò)程中讀取自身的寫(xiě)入結(jié)果在集群模式下會(huì)直接報(bào)錯(cuò)所以你在集群環(huán)境用 Lua 時(shí)要特別克制盡量只對(duì)單個(gè) key 做操作。6. 從學(xué)習(xí)到面試高頻題、監(jiān)控日志和排障手冊(cè)6.1 高頻面試題我建議你追根溯源別只背答案翻一翻網(wǎng)上流傳的“Redis 面試題”問(wèn)得最多的是這些Redis 為什么快、緩存穿透和擊穿怎么解決、分布式鎖怎么實(shí)現(xiàn)、持久化怎么選、主從和集群的腦裂問(wèn)題。這些問(wèn)題并不難難的是你說(shuō)答案的時(shí)候有沒(méi)有“現(xiàn)場(chǎng)感”。比如“Redis 為什么快”標(biāo)準(zhǔn)答案是“單線程避免上下文切換 基于 IO 多路復(fù)用的事件循環(huán) 純內(nèi)存操作”但你要是再往深走一步“單線程為什么還能這么快IO 多路復(fù)用到底是什么”很多人的回答就開(kāi)始含糊了。我自己的理解是Redis 把每個(gè)連接封裝成一個(gè)文件事件交給內(nèi)核去監(jiān)聽(tīng)讀寫(xiě)事件有事件到達(dá)才觸發(fā)回調(diào)處理這本質(zhì)上和 Nginx 的事件驅(qū)動(dòng)模型類似是把“等待 IO”這件事從線程里解放出去了。你用“餐廳只有一個(gè)服務(wù)員但門(mén)口的鈴一響服務(wù)員才出去接待而不是坐在門(mén)口死等每個(gè)客人”這個(gè)類比就可以跟小白講清楚。再比如“Kubernetes 上能不能搭 Redis”這其實(shí)是一個(gè)信號(hào)題對(duì)方想看你有沒(méi)有意識(shí)到在云原生場(chǎng)景下Redis 這類有狀態(tài)應(yīng)用對(duì)網(wǎng)絡(luò)標(biāo)識(shí)Pod IP、節(jié)點(diǎn)名的依賴很強(qiáng)StatefulSet 是唯一合理的選擇。如果你能說(shuō)出 StatefulSet 的穩(wěn)定網(wǎng)絡(luò)標(biāo)識(shí)和 Redis Cluster 的槽位分配之間是什么關(guān)系面試官對(duì)你的印象會(huì)立刻不一樣。6.2 日志、監(jiān)控和常見(jiàn)錯(cuò)誤每一個(gè)報(bào)錯(cuò)都別放過(guò)排查 Redis 問(wèn)題的第一步是看日志。Docker 部署的實(shí)例用docker logs 容器名Linux 直接看日志文件的路徑在 redis.conf 里的logfile配置項(xiàng)。我最常關(guān)注的日志信息有幾類Background saving terminated by signal表示 BGSAVE 失敗通常和內(nèi)存或文件系統(tǒng)有關(guān)Possible nokey和Cant persist這類表示 RDB/AOF 寫(xiě)入出問(wèn)題要優(yōu)先檢查磁盤(pán)空間df -hMISCONF Redis is configured to save RDB snapshots, but its currently unable to persist on disk這個(gè)經(jīng)典的只讀錯(cuò)誤就是磁盤(pán)寫(xiě)不進(jìn)去導(dǎo)致的。監(jiān)控指標(biāo)要盯四個(gè)connected_clients連接數(shù)used_memory內(nèi)存占用keyspace_hits和keyspace_misses算命中率命中率長(zhǎng)期低于 80% 說(shuō)明緩存設(shè)計(jì)有問(wèn)題rdb_last_bgsave_status和aof_last_write_status持久化狀態(tài)。用redis-cli INFO stats | grep keyspace可以快速查命中率用SLOWLOG GET可以看慢查詢結(jié)合實(shí)際業(yè)務(wù)分析是查還是不查??梢暬ぞ哌B接不上的排查路徑也很有套路基本按這個(gè)順序來(lái)第一步ping通不通第二步 telnet 6379 通不通第三步看服務(wù)端有沒(méi)有設(shè)置bind 127.0.0.1很多默認(rèn)配置只監(jiān)聽(tīng)本機(jī)外部當(dāng)然連不上第四步看有沒(méi)有requirepass認(rèn)證第五步看云廠商安全組/防火墻有沒(méi)有放行 6379。八成問(wèn)題都出在bind和防火墻這兩項(xiàng)。6.3 壓測(cè)、優(yōu)化和一把“性能底牌”最后聊聊性能Redis 本身吞吐很高但別忽略“客戶端導(dǎo)致的問(wèn)題”。在項(xiàng)目中用了KEYS *這種 O(N) 命令在阻塞事件循環(huán)的同時(shí)它可能讓整個(gè) Redis 卡頓到毫秒級(jí)超時(shí)。用SMEMBERS拉取一個(gè)巨大 Set 的全部成員它會(huì)撐爆網(wǎng)絡(luò)和內(nèi)存。這些替換方案都是現(xiàn)成的SCAN分批遍歷 keySSCAN遍歷 SetLRANGE注意限制數(shù)量。養(yǎng)成“避免 O(N) 命令”的習(xí)慣是所有 Redis 使用者必須過(guò)的一道坎。壓測(cè)工具的選擇上redis-benchmark是官方自帶的最簡(jiǎn)方案但它模擬不了復(fù)雜業(yè)務(wù)流量真要壓真實(shí)場(chǎng)景用redis-cli --latency看延遲分布、用INFO commandstats看每條命令的執(zhí)行次數(shù)和耗時(shí)占比比盲目壓 QPS 更有參考價(jià)值。我見(jiàn)過(guò)很多團(tuán)隊(duì)“壓測(cè) QPS 達(dá)標(biāo)”但線上一緊張就告警觀察下來(lái)基本都是沒(méi)看延遲分布、沒(méi)看命令耗時(shí)導(dǎo)致的性能優(yōu)化要看“哪個(gè)命令最慢”而不是“系統(tǒng)最高支持多少 QPS”。我個(gè)人在實(shí)際操作中的體會(huì)是Redis 不是一個(gè)“學(xué)完就完了”的東西它和業(yè)務(wù)形態(tài)綁定得很深。同一個(gè)命令在緩存場(chǎng)景、計(jì)數(shù)場(chǎng)景、隊(duì)列場(chǎng)景中的語(yǔ)義和坑完全不一樣。你學(xué)它的方式?jīng)Q定了你后來(lái)踩坑的多少——如果只是背命令你會(huì)覺(jué)得它很簡(jiǎn)單如果你動(dòng)手搭過(guò)集群、看過(guò)日志、壓過(guò)延遲、親手修過(guò)緩存穿透你才會(huì)真的理解“高性能中間件”這幾個(gè)字背后藏著多少容易被忽略的工程細(xì)節(jié)。這篇筆記是我自己踩坑過(guò)程的復(fù)盤(pán)寫(xiě)出來(lái)算是給后來(lái)者省點(diǎn)時(shí)間尤其是那些第一次在項(xiàng)目里引入 Redis 的朋友愿你少走幾步彎路。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲黄网在哪免费看| 亚洲精品官网在线观看| 江都AV在线| 午夜无码精品免费看性色| 亚洲丝袜少妇在线| 色哟哟av网址| 亚洲国产一区二区三区在线| 少妇超碰在线| 成人av免费观看| 美国精品国产精品| 亚洲天堂在线怕怕视频| 另类图片欧美激情综合| 99久久99九九99九九九| 97伦乱| 动漫片子网站3黄| 久久男女激情视频网站| 亚洲精品官网在线观看| 国产女s强制榨精视频| 男人的天堂kva| 呻吟 欧美 日本 中出| 亚洲熟妇丝袜在线观看| 亚洲一区深夜| 精品四五区| 麻豆国产尤物AV| 国产精品一区二区三区,亚洲综合| 国产福利一区二| 92一区二区| 欧美日韩在线小说 | 亚洲日韩XXX| 日韩紧密久久| 日韩国产十八禁| 成人AV素股で擦久久| 色九区| 成人AV在线电影| 青青久久手机线视频| 人妻少妇久久中文字幕一区二区 麻豆| 强乱老妇中文字幕| 男人亚洲天堂| 日韩免费高清大片在线| 人人干黄色| 在线免费观看高清无码视频| 亚洲一区在线观看欧洲| WWW啪啪的com| 亚洲精品天堂久久A∨51成人漫| 少妇一级无码精品| 日本午夜久久电影| 国产亚洲一黄| 久久超碰亚洲人| 18一区二区三区| 久久伊人网视频一区二区三区| 欧洲综合视频| 啊啊啊不要啊啊受不了了视频在线| 久久久久久久九九九九九九| 岛国AV一区二区电影| 老鸭窝亚洲毛片| 草草影院在线视频| 久久嫩草国产成人一区| 208天天久久九九九| 91中出视频| 国产精品剧情| 黄色片,com| 六月丁香久久| 97AV在线免费观看| 91中出视频| yiqicaoav| 欧美久久伊人| 99久久com免费视频′| 麻豆九九九| 啊灬啊灬啊灬啊灬高潮奶出了免费视| 欧美日韩中文字幕不卡| 日本精品网站在线中文| 禁片 高清 在线观看视频网站| 宅男午夜在线视频| 性欧美| 麻豆国产97在线| av天堂手机版追回 | 色娱乐色呦呦夜夜夜夜av| 色呦色呦色精品| 秘书高跟黑色丝袜国产91在线| 91久久久久久久久18| 欧美人与动性人交a| 国产欧美精选自拍一区| 亚洲情色一区综合| AV色女综合| 天天射天天操天天干天天吃2018| 婷婷五月天AV| 伊人四虎综合| 美国精品国产精品| 久久久精品国产亚洲伊人| 媚薬在线视频麻豆| 婷婷超| 中文字幕在在线观看网站| 国产乱码久久久久久| 中文一区二区三区影院| 色99色| 色www精品视频在线观看| 青青色在线观看| 欧美性爱系列| 91高潮喷水美女| 美女裸体无遮挡永久免费观看网站| 亚洲成人一区二区精品| 亚洲精品欧美专业| 99久久婷婷丁香| 啊啊啊啊啊啊好湿好爽视频| 久艹日日日| 91久久婷婷| 久久中文字幕女同性恋一区| 午夜福利1区2区3区| av天堂影视中文在字幕在线中文| 蜜臀99久久精品| 国产av波波国产精品| 淫色网综合| 成人线上超碰| 色网1| 免费的黄片有限公司| 97视频网站在线观看| 亚洲第一页色网| 91色色色| 日韩三A大片在线观看| 麻豆 欧美 日韩| 综合久久9| 免费看日产一区二区三区| 亚洲素人综合| 六九九九| 日韩熟女无码| 青青伊人加勒比海| 韩国午夜理伦三级好看| 蜜桃精品一区二区三区久在线| 一区二区三区在线美女| 久热精品色情| 盗摄女人妻在线| 欧美综合网1| 日韩操逼HD| 免费久久9999| 99久久久er直播网址| 啊啊啊啊啊啊啊网址在线观看| 亚洲日本激情| 亚洲av资源| 欧美日不卡| 日韩啪啪视频| 尤物av网站| 岛国福利在线精品播放| 五十路成人在线视频二区三区| 日韩乱伦影音先锋| 午夜操一视频一区| 日本三级人妻a人妻一在线| 小说区 图片区色 综合区| 福利偷拍视频-中文字幕2019国语完整视频大全-S91AV | 久热一区二区| 999 久久久| 久操网无码在线| 蜜桃视频啊啊啊啊| 天堂综合| 国产女人成人精品视频| 自拍偷拍第26| 男人的天堂com| 性欧美另类高清| 最新av中文字幕高清| 中文字幕乱偷人妻久久艾草网| 96久久精品一二三区色欲| 夜夜高潮夜夜爽夜夜爱爱一区| 麻豆 欧美 日韩| av天堂天堂av日韩| 91成人18| 男人天堂网手机版婷婷| 国产视频一区二区三区久久亚洲天堂| 国产熟女免费观看久久| 精品九九| 97日韩超碰超碰中文字幕| 久久精品一区| 欧美日韩91| 黄色激情电影在线观看| 久久午夜色播影院免费高清| 国产日韩欧美| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 国产精品播放| 999熟女精品| 亚洲情色电影网| 精品一二三区久久AAA片| 91综合网在线| 久久风骚城市人| 区一二区日韩亚洲乱码av电影| 久久精品亚洲成a人天堂| 日韩熟女三十乱伦| 国产免费内射视频| 久久午夜色播影院免费高清| 欧美中字不卡| 日日夜夜噜| 日韩欧美视频青青| 亚洲另类在线观看| 嗯嗯啊在线视频| 国产第25页在线观看| 久久久性| 国产精品不卡一区二区三区av| 国产97av| 高潮9999外国| 亚洲有薄码区久久在线一区| 狠狠干妹子| 欧美影音在线| 99热国产精品| 国产后入清纯| 欧美在线|亚洲| 精品妇操一区二区三区| 学生妹天天看| 国产精品午夜福利| 就去色综合| 久久久久久无码人妻中文字幕| 色呦色呦色精品| 九九九九九九九九九九精品视频| 天天干人妻| 爽爽爽免费视频| 熟妇人妻一区二区 | 亚洲人妻久久| 日韩视频中文字幕| 欧美极品美女aaaaaa级黄片| 精品国模无码| 亚洲 自拍偷拍 欧美| 久久日韩精品一区二区| ..日韩av毛片精品久久久| 超清福利精品视频在线| 日本性爰一道本| 国产女人和拘做爰视频 | 熟女被操视频网址| 开心五月深爱五月| 春色校园综合网| 欧美性,色九九| 自拍欧美| 久久精品男人的天堂| 欧洲一区二区| 国产女人和拘做爰视频| 亚洲乱码尤物193YW| 一区二区三区激情在线观看| 亚洲情色1区| 日韩欧美丝袜诱惑| 亚洲 日本 不卡| 国产一级内射高清视频| 播播亚洲小说亚洲| 99精彩视频| 91色黑人少妇| 国产9熟妇视频网站| 亚洲丝袜诱惑| 亚洲第一狼人丝袜美女另类| 天天操夜夜操| 亚洲欧美国产中文字幕| 肉丝中文无码高清| 欧美少妇色图| 思思热影视| 六月色色| 久久偷偷色综合蜜桃| 久九九九九九九九热| 少妇综合| 婷婷精品视频| 日韩操呦呦影院在线观看| 亚洲伊人青青草| 91久久青青草原精品| 岛国大片在线观看网站入口| 五月丁香综合网| 国产精品视频播放| 美女诱惑久久| 丁香色色网| 福利风月五月天影院| 日韩人妻丝袜美腿中文| 白丝被操91| 激情小说五月天| 天美传媒AV国产在线| 爱爱动态60秒| 欧美大香蕉卡久久| 婷婷超| 成人性爱电影一区二区| 亚洲天堂日本| 老熟女乱伦一区| 亚洲色综合| 九九九久久久久| 2019天天干| 四虎影院成年人片| 欧美日韩精品久久久久东北老熟妇| 精品国产Av无码久久久亚洲| 黄污污污污| 无卡一区=区| 久久久久久日韩| 国产成人亚洲精品自产在线 | 操b在线观看| 丁香六月婷婷| 91老熟妇| 又大又长又爽| 高潮精品| 97爱爱影院| 91P0RNY大屁股人妻| 婷婷五月激情综合| 97超碰伊人| 久久久精品视频免费观看| 久久久久久九九九九-美女久久久久久久-成人AV| 强乱老妇中文字幕| 国产玖玖| 欧洲综合无码| 91久久久视| 日本成人A片网站| 啊啊啊啊啊啊好湿好爽视频| 天堂69亚洲精品中文字| 禁十八久久| 九九视频黄色片| 97香蕉人人乳| 午夜福利成人免费视频| 天美麻豆一区二区三区| 亚洲综合另类欧美久久久| 3PAV乱伦视频| 日韩久久艹| 乱伦av国产| 91欧美巨乳| 欧美中出1| 美女91在线| 亚洲有码 欧美精品| 男人天堂2017| 日产中文字幕2020| 欧美,日韩综合久久| 人妻天天爽| 大香蕉一线视频| 欧美色图20P| 亚洲一区二区三区久久 亚洲一区二区| 夫妻日逼| 国产精品熟妇一区二区三| 蜜乳性色无码专日粉嫩骚逼AV| 最新岛国大片| 成人羞羞视频国产| 60秒免费小视频| 蜜屁av| 日本99视频| 超碰在线一区二区| 18岁禁 茉莉成人久久| 日韩欧美tv一区二区在线观看| 污污污8888| 女人喷水视频在线观看| 亚洲九九九| 伊人久久亚洲中文字幕不卡| 五月综合久久| 亚欧高清| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 国产精品午夜AV完会免费 | 亚洲图片欧美色| 天天天天做夜夜夜夜做| 欧美成人9797| 桃花色涩综合影院| 日本三级一区二区 在线| 91天堂丝袜美腿| 97se综合网| 久操精品网| 国产对白刺激视频| 黄骗免费网站| 深夜激情| 久久精品人妻一区二区三区| 97超碰色屌| 99热伊人| 中文字幕aⅴ在线视频| 日日摸天天爽夜夜欢| 亚洲成人色情五月天丁香花| 久久日韩毛| 日韩在线观看中文字幕视频| 人人摸.人人色| 欧美性夜| 欧美伊人电影| 丰满欧美放荡少妇在线| 大香蕉在线免| 日本一区99| 日韩免费人妻色情网站| 黑丝内射一区二区三区| 欧美99热| 国产精品青草综合久久| 一区二区三区精品视频| 亚洲欧洲综合成人av一区| 少妇色| 深喉吞精| 亚洲AV永久无码精品成人调教| 大香蕉啪啪啪啪在线| 色女女女导航| 射 色综合| 91美女中出| 婷婷激情综合网| 99久久e免费热视| 久久双插| 情趣丝袜无码操逼视频| 亚洲国产av中文字幕久久| 国产精品黑人一区二区三区| 伊人操你| 欧美伊人久久综合网| 国产狂喷潮在线精品| 国产精品白丝| 中文字幕一区二区三区四区在线视频| 91被操| 日韩一级二级三级免费看完整版| 日本一区二区中文字幕久久| 人妻啪| 亚洲欧美日韩免费电影| 欧美精品xxxwww| 国产精品婬乱一级毛片彝族| 白嫩国模丰满一二三区| 人妻少妇久久久| 亚洲天堂电影精品一区| 91色综合激情| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 曰本熟女视频| 男人的天堂久久狠| 国产在线激情| jizz啪啪| 国产强上视频在线观看| 成人片在线播放| 五月丁香综合| 久久成年精品| 99re99在线视频| 好爽视频在线观看视频| 岛国毛片在线观看免费| 欧美视频中文字幕区| 国产成人网址| 日韩超碰精品综合| 91精品婷婷国产综合久久| 欧美人妻一区二区| 成年无码动漫av片无尽在线 | 丁香五月久久| 亚洲淫乱骚妇AV| 国产精品久久久久999| 日本二三四区| 亚州免费啪啪视频| 日日狠狠久久偷偷色综合免费| 麻豆亚洲Av成人无码一区精品| 天天看特黄的免费网站| 欧美在线电影| 中日韩熟女| 啪啪91| 亚洲日韩XXX| 91老熟妇| 五月色网| Aa东京男人的天堂| av激情亚洲五月天| 人妻22p| 国产亚洲欧洲在线观看| 亚州欧美在线| 中国一区二区亚洲人妻| 亚洲中文字幕妇伦久久| 亚洲欧美激情小说| 在线一道啪| 天堂九九九九九九九九九| 国产欧美成人精品| A级国产欧美激情在线| 立川理惠无码一区二区| 丰满搜索结果 -第18页- 久久高清无码| 亚洲风情综合网| 亚洲图片激情综合另类| 综合国产97| 国产嫩草精品A88AV| 翔田千里一区二区三区奶水| 麻豆天美国美国产| 四虎AV在线播放| 亚洲最新a在线观看| 久久9久9久99久9久9| 九九热精品视频六| 无码国产精品久久久久| 老熟女中文字幕高清| 欧州一区二区三区四区| 99这里有精品| 人人妻人人爱人人玩| 操人91| 国产中文字幕在线观看| 亚洲欧美日韩精品久久久一区二区| 91国产大片| 91天天| 人妻激情另类| 成年无码动漫av片无尽在线 | 欧美最大综合网| 久久五月天婷婷丁香中文字幕| 熟妇熟女一区二三区| 亚洲天堂久久久久久粉红视频| 久久色情| 搡老女人老91二区| 中文字幕91综合| 69一区二区三区| 九九九九九九九精品视频| chaopen97久久| 毛片电影一区二区三区| 精品少妇一区二区| 吻戏激情性巴克| 中文字幕乱码在线观看| 日韩伦理视频| 强奸乱伦大香蕉| 大香蕉青青9| 亚洲第一无码播放立川理惠| 精品大全99999| 午夜男女爽爽爽在线视频| 欧美色图99| 欧美日韩国产在线| 日韩欧美性吧婷婷乱伦大香蕉| 欧美日韩人人精品| 一起草欧美| 99这里只有精品| 人妻丝袜无 码视频专区| 国产在线播放成人免费| 国产白丝在线| 丁香六月啪| 私人尤物在线精品不卡| 午夜后入| 亚洲精品丝袜-不卡成人免费……| 97干在线视频| 天天舔天天日天天射| 天天操天天舔| 国产在线能看的你懂的| 亚洲欧美综合网站| 99久久这里只有精品| 欧美日韩*字幕一区| 色香欲天天天天综合色| oumeisetu综合| 操逼免费视频无码国产| JuliaAnnXXX888| 欧美性,色九九| 日韩女模中文造逼| A一区片| 嗯嗯不要 视频| 久久亚洲天天做| 日本网色| 黄色视频60分钟| 国产精品乱码久久久| 国产成人主播| 色女女女导航| 亚洲aV性爱| 台湾一区国产高清在线| 大茄子熟女AV导航| 欧美午夜视频| 精品一区二区三区最新| 日本在线不卡v二区| 亚洲男人天堂av| 久草男人天堂| 日韩一区二区熟女| 91操人| 日本一区二区三区四区免费观看| 啊啊啊啊啊好多水| 欧美日综合| 97一区二区三区视频| 久久国产三区| 色色色五月婷婷| 强奸乱伦Av网| 人妻一二三区| 免费看黄片现成| 97亚洲在线| 国产麻豆91欧美一区二区久久婷婷国产精品 | 久久久久人| 伊人精品视频| 亚洲瓯美色图| 久久a久久| 人妻熟女字幕一区二区| 很很干很很操| 伊人成人中文字幕久久网| 五月天婷精品激情| 熟女人妇一区二区三区| 手机在线视频国内精品| 精品国产无码中文| 国产中文大片资源中文字幕| 天天懆天天日| 日日日日做夜夜夜夜无码| www.亚洲成人一区| 日韩精品色呦呦| 国产精品不卡一区二区电影| 操操操五月天婷婷丁香影院| 国产三级在线现体验区| 久久久国产av美女私房| AV一起草在线| 91精品女厕偷拍视频| 国产日韩精品人妻久久久久色欲网站| 国产AV色黄看到爽| 99re国产精品视频| 性色av网站| 亚洲无码久久久久久久| 亚洲图片偷拍视频区| 欧美一级A片在线看视频性色| 亚洲五码一区二区三区| 天天干人妇| 五月天伊人| 久久久蜜桃一区二区三区| 国产女上位好爽在线| 久九干| 美腿丝袜高跟网免费视频免费视频| 美欧老女人97| 青草伊人久久| 9久久久久| 国产福利电影| 成人午夜小视频手机在线看| 亚洲黄色影视| 欧美日韩人人精品| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 三四中文字幕| 久操视频资源站公开| 国产欧美岛国精品一区| 五月婷婷激情综合| 欧美香蕉视xxx| a片亚洲一本通视频| 老熟女天天操| 中国AAAAAA黄色片| 免费看A片毛毛片在线播| 久99热| 九一屌逼| 久久精品国产亚洲粉嫩| 黄片免费视频2019| 91九色在线| 天天综合香 ld视频| 综合天天。| 久操精品| 999国产精品999| 久久久久久夜夜夜夜夜| 黑人干亚洲| 青青草国产欧美非洲黑人| 免费看国产曰批40分钟怎么下载| 99久久婷婷国产综合精品草原| 九九热超碰97亚洲最新香蕉| 亚洲AV永久无码精品成人调教| 免费家庭乱伦视频| 激情AV| 91色伦综合| 97欧美| 两性综合网| 99热导航| 麻豆国产97在线| 9色在线| 伦理日韩国产久久| 91午夜无码| 久久久精品国产亚洲伊人| 色97综合中文字幕| 欧美日韩日产免费网站看| 天天做天天爱天天爽| 狠操91,com| 收看日本人日bb| 亚洲综合网电影91| 美女好片色日本| 太久视频| 韩国国产欧美情侣视频在线| 性夜影院爽黄A爽免费动漫| 中日高清无码操逼视频| AV色五月天| 国产精品一区av在线| 日韩人妻少妇中文字幕| 天天影视亚洲| 色色色999| 素人伊尹大香蕉免费下载视频| 天天操夜夜操狠很操| 日韩国产十八禁| 国产乱伦搜索结果91P| 98色网| 久久日韩肥臀| 91啪啪视频| 91高清日| 色婷婷99| 精品人妻av区天天看片| 亚洲精品 大香蕉| 怡春院久久| 91啪啪| 免费视频一二三区| AV天天在线观看| 97在线免费观看| 超碰亚洲97| 亚洲av性爱电影| 亚洲国产剧情少妇激情| 影音先锋少妇| 久久色一区二区| 综合五月婷婷亚洲一区| 91爱看| 亚洲国产成人精品无码专区| 久久久久久无码人妻中文字幕| 在线视频日韩欧美国产| 黑白配性爱AV成| 五月丁香亭亭| 2021国产成人精品久久| 欧美视频第二页| 人人操人人搞人人草| 四虎影视永久在线观看精品免费网站 | 成人无遮挡毛片免费看| 97在线青| 五月天啪啪| 成人免费性爱视视| 精品国产国产AV| 99日精品欧美国产| 中国探花熟女| 熟女少妇一区二区三区| 久久久久久性爱视频| 国产女人极品高潮毛片| 亚州,欧美在线| 嗯嗯嗯嗯啊啊啊好紧好大| 日韩熟女操逼| 九九人妻| 超碰爽人妻熟女Av| 日韩一区二区三区四区五区 | 67914亚洲精品| 思思视频免费看网站| 成人一级二级| 日韩美女久久一区二区三区| 国产日逼视频| 日韩精品午夜操呦呦不卡影院| 夫妻四区五区六区| 亚洲女毛多水多21P| 亚洲欧洲激情卡通另类文学四射小说网站| 大香蕉色网| 久久久婷婷婷| 在线综合 亚洲 欧美中文字幕| 日本精品一区二区三| 91人妻人人妻| 怡红院一区二区熟女人妻| 加勒比海色香蕉婷婷| 日韩精品电影| 久久欧美按摩999| 欧美另类综合久久| 国产精品com| 亚春色色| 国产熟女二区| 国产性感骚丝袜在线| 久久久九九网站| 久久久精品中文字幕爱豆| 五月天婷婷社区| chaopen97久久| 亚州综合AⅤ| 91青视频| 性爱动态120秒| 日本精品第一视频在'| 人人看人人插| 国产毛片片精品天天看视频| 国产伊人精品在线| 超碰69| 久久国99999| 国产精品久久久久绯色| 综合熟女| 六月激情网| 国产男女无套视频免费观看| blacked精品一区国产| 综合av社区| 男人午夜天堂| 中文字幕欧美丝袜07资源| 欧美同性恋 的搜索结果 - 91n| 老熟妇综合| 久久久久久久久九九久孕交| 国产怡红院| 神马久久久久眼| 久久五月份| 天天欧美欧美亚洲网| 色五月大香蕉| 六月丁香网| 婷婷九月| 翘臀vidoes| 久久久艹艹艹| 色呦呦、国产精品| 亚洲另类久操网| 1024亚洲中文字幕久在线看片你懂的| 黑丝少妇在线观看| 校园春色 男人天堂| 亚州精品一区二区三区香中文字幕在线| 97人人操人人干| 开心五月婷婷| 神马久久久久眼| 亚洲宗合电影| 91少妇香蕉久久精品| 中文字幕人乱码中文字的预防方法 | 清纯唯美综合亚洲| 亚洲激情久久久伊人综合| 日韩99999| 亚洲欧美天堂| 成人无码在线超碰网| 一区二区三区黄色片a| 老熟妇一区二区三区…| 最新国产亚洲精品精品国产亚洲综合| 国语对白在线播放视频| 97天堂| 九九久久久九九| 婷婷香网站| 久操免费视频| 亚洲国产精品无码AV久久| 久久精品久久久久久久久| 国产精品网址| 五月天婷婷久久| 青娱乐av在线| 任你干在线视频| 另类小说欧美激情校园春色| 人妻中文字幕日韩电影| 五月天激情网图片| 东京热一区二区三区四区五区六区| 夜夜综合| 欧美九九九| 懂色中文一区二区三区| 婷婷深爱五月| 91丝袜美女| 2020中文字幕在线| 超碰在线一区| 婷婷丁香五月天亚洲天堂网| 五月天激情综合网| 91天美传媒在线| 夜夜嗨一区二区三区直播内容| 97啪啪| www色日本| 色眯眯射| 国产丝袜啪啪| 少妇无码av专区线| 亚洲麻豆精品二区三区| 校园春色宗合网| 青娱乐啪啪视频| 国产一区二区三区导航| 中文一区二区婷婷视频| 91久热| se吧提供91精品国产91久久久久久| 亚洲成熟国产精品美女| 久久9久9久99久9久9| 97超级色碰碰| 日韩激情毛片一级久久久| 性爱综合网| 亚洲精品久久一区二区三区蜜桃臀| 中文字幕三四区| 国产超碰| 日日嗨AV一区二区夜夜| 激情综合网激情综合| 色小视频蜜乳| 色网1| 国产91会所女技师在线观看| 久久久久成人蜜桃精品| 欧美色图自拍| 中国乱伦一区二区| 久久超碰、| 91中出| 青草视频在线看看看看看看看看看| 超碰97在线中文| 国产又黄又粗的视频| 白丝1区2区3区| 神马午夜久久| 激情婷婷五月天| 日韩BBN| 懂色AV蜜臀无码精品APP| 日韩精品第3页| 精品人妻一区二区三区四区石在线| 很很干很很操| 97碰碰色| 久久久一区二区三区四曲免费听| 少妇久久久免费| 强奸乱伦大香蕉网| 日韩熟女视频二区| 操逼操逼逼操操逼91| 国产精品丝袜久久亚洲不卡| 一区操逼| 嗯嗯啊啊好疼| 国产白丝AV| 殴美,日韩国产伦精品| 欧美碰碰综合色| 亚州高清av| 97超碰久| 中文字幕AV片| 91高跟美女在线播放| 禁止观看美女黄| 大稥蕉免费视频这里只有精品| 懂色AV蜜臀无码精品APP| jk白丝没脱就开始啪啪| 国产探花精品在线| 艹少妇网站| 久久久精品视频免费观看| 午夜福利免费精品视频| 手机看片1024你懂的国产| 1769一区二区| 大香蕉手机视频| 中文字暮97| 操一区| 日韩 女同 综合| 欧美色亚洲色| 欧美综合天天| 黄色片一区二区三区四区五区| 激情综合五月婷婷| 99久久婷婷| 人妻久热在线| 亚洲日韩XXX| yazhououmeizongya| 一二三区操逼国产91| 少妇厨房愉情理伦片bd在线观看| 涩涩这里只有精品视频| 小情侣高清国产在线视频| 亚洲色图大香| 国产第11页| 啊啊啊好舒服视频| 无码丰满熟妇一区二区浪潮AV| 人人做人人妻人人夜视频| 中文字幕永久在线| 使劲用力艹少妇视频一区二区| 国内一级精品| 欧美操逼熟女| 97视频在线观看播放与子乱对白在线……| 中文字幕乱碼在线| 91天堂| 国产精品自拍欧美在线| 97干色天堂| 精品亚洲天堂| 色色色色电影网| 国产精品视频在线播放| 人妻色偷色噜| 亚洲 日本 一 二 三| 国产AB视频| 亚州免费啪啪视频| 天天综合欧美综合| AV麻豆免费一区| 久jiu久神马影院| 国产精品久久久久久久久久久久久久吹 | 加勒比色99999| 1769精品一区二区三区| 日韩色女精品| 亚洲成A∨人影院在线欢看| 亚洲综合九| 国产日韩区| 99黄页网站| 亚洲成人一区二区精品| 亚洲性综合| 91色婷婷综合久久中文字幕二区| 安微少妇操BBB| 能看的AV| 看全色黄大色大片免费视频| 日本天天吊| 黄色片A级一区二区三区| 伊人操操| 六月丁香婷| 亚洲av噜噜噜噜噜噜| 韩国女主播青草在线| 国产成人午夜视频网址| 91亚.色| 美女露胸露屁股| 天天弄天天操| 大香蕉日韩| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 中文字幕蜜乳av| 国厂麻豆77q4| 91久久婷婷| 亚洲图片激情综合另类| 夫妻AV网站| 曰本熟女视频| 99热综合| 女同性恋久久| 久久久久久久强迫| 91黄射| 97超级欧美| 亚洲精品一区中文字幕乱码| 精品午夜福利国产一区二区在线观看| 青青草色AV| 曰本91情色| 蜜桃久久久久久久| 婷婷五月综合在线| 人人天天干干| 三级色综合| 久久性爱精品一区| 欧美v日韩v亚洲v最新在线| 日韩欧视频| 深夜激情 | 久热大香蕉| 思思热免费视频观看| 亚洲欧美综合区自拍另类| 韩三级a视频在线观看| 精品人妻一区二区三区日产| 少妇激情一区二区三区视频| 色婷婷A V一二三四区麻豆综合| 久久亚洲色图中文字幕| 久久久久久久久久久久九| 十八禁黄色成人网站观看| 国产亚卅97| 人人噜夜夜操| 日日干夜夜欢| 久久9精品网站| K8久久久久| 久久粉色| 男女啪啪啪18禁网站| 日韩欧美操逼xxx| 天天色,天天干,天天干| 亚洲国产午夜真人一级片中文字幕精品黄网站 | 中文字幕 国产区| 99免费视频| 九久精品| 国模私拍一区二区三区神乳| 精品偷拍13p欧美dodk视频| 激情小说成人日本无码一| 日韩中文字幕视频在线观看| 久久久网站| 5252色欧美在线| 后入福利| 亚洲伊人久久综合97| 欧美黑人精品一区二区| 亚洲 日本 一 二 三| 久久久不卡区一区二区三区久久久| 91无码人妻| 91综合色噜噜| 99色婷婷| 日本免费一区二区不卡| 国产精品视频内谢女人| 欧美劲爆视频一区二区| 精品网站9999| v91av| 国产女性无套 免费观看| 国产熟女一区二区丰满| 久久丝袜| 人人妻人人狠人人| 99xav| 精品欧美不卡在线播放| 五月丁香影院| 亚洲日韩狠狠撸视频| 久久黄色性爱视频| 欧美久久毛片基地| 超碰色老头| 色婷婷激情| 97操b| 香蕉综合网| 理论久久婷婷网8| 天天躁日日躁XXXXYY| 九一国产精品| 久久肏大逼| 人人摸人人舔一区二区| 亚洲古典另类欧美在线| 超碰69| 在线观看综合精品亚洲| 91欧美少妇| 天堂亚洲精品久久老牛| 国产亚洲精品农村妇女| 国产性爱欧美性爱在线| 亚洲AV噜噜狠狠网址蜜桃动漫| 久久久久久中文版| 国产三级多多影院2022国产AA一级毛片无码 | 天天澡天天爽日日AV| 日韩伦理久 久久 清纯| 五月婷婷丁香六月丁香| 蜜桃狠狠色伊人亚洲综合 | 亚洲国产午夜真人一级片中文字幕精品黄网站| 久久久久国产| 色色国产| 乱伦a片视频| 四虎免费在线播放| 日韩AV一区二区三区三州三州| 爽极品影院| 福利视频网站| 狠色婷婷久久一区二区三区_| aaa一级黄片| 国产9 9在线 | 亚洲| 91亚洲狠狠色| 日日干夜夜操视频h| 国产精品国产拍高清AV| 精品无码一区二区三区色欲| 久久精品国产久精国产| 久久久人体| 亚洲精品中文字幕一区在线视频 | 清纯唯美综合| 老熟妇一区二区三区啪啪| 国产伦精品一区二区三区视频女| 欧美日韩电影成人在线| 国产精品一区二区三区四区五区| 美欧老女人97| 乱日视频| 亚洲色五月| 婷婷AV一区二区三区| 欧美亚洲第一页| 97爱| 久久久久99999| 易易A毛视频| 天天干人妻视频| 免费亚洲国产精品久久一区| 久热精品色情| 亚洲射综合网| 九九玖玖精品| 亚洲国产精品久久久久婷婷青年| 免费综合亚洲中文| 欧美黄色片AAAAA| 婷婷视频网| 亚洲综合九九| 天天干,夜夜爽| 国产欧美日韩在线观看麻豆传媒公司| 欧美日韩操逼嗦吊| 日本久久精品| 人妻少妇精品一区二区三区| 思思热在线观看| 高凊专区人人操| 九九热五区| 丝袜美腿射精91| 中文字幕一二三av| 国色综合天| JIZZJIZZ亚洲女人被躁| 国产一级内射无挡观看| 国产亚洲色婷婷久久99精品91葵花宝典 | av大香蕉网站| 久久视频少妇美女| 99re28在线观看| 女沟厕偷窥piss小便| 26UUU欧美激情一区二区| 日韩AV熟女乱伦| 日本淫色网| 中文字幕精品亚洲熟女| 欧美日韩久久精品爱爱| 久久久久免费看少妇A片特黄| 国产成人精品日本亚洲语言| 麻豆亚洲Av成人无码一区精品| 男人天堂日日夜夜| 亚洲黄色| 操逼1区| 天天综合网91入口| 超碰天天去日穴| 巨爆乳一区二区爆乳区| 亚洲青青青视频在线| 好爽要喷了| 午夜福利av电影在线| 人人喜人人妻| 日韩人妻无码不卡网站| 丁香六月东京热| 99色骚| 国产主播福利| 久久精品一区二区三区不卡| 蜜桃臀AV在线| 99久久精品无码一区二区| 欧美情色男人的天堂| 亚洲色图一区二区三区| 欧美性爱五月天| 国产av色网| 男男H黄动漫啪啪无遮挡网站| 一区二区三区成人| 亚洲,日韩,欧美,成人播放 | 国产自啪精品视频网站黑丝| 在线无码视频| 亚洲熟女一区| 婷婷视频在线免费观看| 国产精品乱码久久久、久久| 国产欧美岛国精品一区| 久久视频,这里只有精品 | 91精品国产91久久福利| 啊啊啊啊啊啊好湿好爽视频| 国产亚洲日韩欧| se,,,亚洲欧美| 日本色色色色色视频| 亚洲不卡一| 中文高清一区二区的| 亚洲无码精品AV久久久| 黄色不卡视频| 极品色www影院| 黑人娇小av在线播放| 久久有碼| 久热9| 天天日天天干天天色| 97综合久第一页| 97蜜桃综合| 中文字幕123| 欧美成人性活片| 亚洲系列欧美| 116美女午夜| 日韩激情中文字幕有码| 91bbb| 亚洲情色 无码专区| 九九热九九热| 无码人妻丰满热妇又大又粗| 肥臀熟女福利视频一区二区| 日韩啪啪视频| 人妻色偷色噜| 视频二区美腿制服人妻欧美| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | av婷婷色网| 日韩人妻资源在线看| 日本性爱不卡视频| 樱花蜜乳av| 精品久久无码午夜福利| 蜜臀久久99精品久久久久久-DVD | 免费操逼91| 91制服丝袜中文字幕| 人人摸人人舔一区二区| 伊人国产视频| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 蜜臀网 一区| 91N综合网| 天天综合,91入口|