色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

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

Redis面試高頻考點(diǎn)全解析:從數(shù)據(jù)結(jié)構(gòu)到分布式鎖的復(fù)習(xí)體系

Redis面試高頻考點(diǎn)全解析:從數(shù)據(jù)結(jié)構(gòu)到分布式鎖的復(fù)習(xí)體系 8月準(zhǔn)備Java面試Redis這一塊是繞不開的高頻考點(diǎn)。無論是校招還是社招Redis 都是面試官最喜歡深挖的方向它不像 MySQL 那樣以背 SQL 為主而是可以通過數(shù)據(jù)結(jié)構(gòu)、緩存設(shè)計(jì)、分布式鎖、集群方案層層遞進(jìn)地考察候選人的實(shí)戰(zhàn)能力。網(wǎng)上關(guān)于 Redis 面試題的資料很零散不少文章只給結(jié)論不給原理看完記住結(jié)論面試官多問一句“為什么”就容易露餡。這篇文章會(huì)把 Redis 面試中最核心的知識(shí)點(diǎn)整理成一套完整的復(fù)習(xí)體系按照“概念-數(shù)據(jù)結(jié)構(gòu)-持久化-緩存問題-分布式鎖-集群-排錯(cuò)-復(fù)習(xí)路線”的順序展開。每部分都會(huì)給出面試中高頻的問題、標(biāo)準(zhǔn)的回答思路、容易踩的坑以及配套的命令和代碼示例。不管你是剛開始準(zhǔn)備面試還是已經(jīng)進(jìn)入沖刺階段都可以直接對(duì)照這篇文章查漏補(bǔ)缺。先把這份內(nèi)容存下面試前翻一遍確實(shí)能少走很多彎路。1. 先搞清楚 Redis 在面試中到底考什么1.1 Redis 是什么為什么面試必考RedisRemote Dictionary Server是一個(gè)基于內(nèi)存的鍵值型 NoSQL 數(shù)據(jù)庫(kù)。它的核心特點(diǎn)是所有數(shù)據(jù)都存儲(chǔ)在內(nèi)存中所以讀寫速度非??旃俜浇o出的基準(zhǔn)測(cè)試中單實(shí)例 QPS 可以達(dá)到 10 萬(wàn)級(jí)別。同時(shí)它支持持久化、過期策略、發(fā)布訂閱、事務(wù)、Lua 腳本、分布式鎖、集群擴(kuò)展等豐富的功能所以在互聯(lián)網(wǎng)項(xiàng)目中Redis 主要用于緩存、會(huì)話共享、排行榜、分布式鎖、消息隊(duì)列等場(chǎng)景。面試中考察 Redis本質(zhì)上是從三個(gè)維度進(jìn)行面試者是否掌握 Redis 的數(shù)據(jù)模型和常用命令。面試者是否理解 Redis 的底層機(jī)制比如持久化、淘汰策略、線程模型。面試者是否具備在真實(shí)項(xiàng)目中解決緩存問題、設(shè)計(jì)分布式方案的能力。這三個(gè)維度由淺入深正好對(duì)應(yīng)面試官追問的節(jié)奏。如果只是背題不深入很容易在追問環(huán)節(jié)被識(shí)別出來。1.2 Redis 和 MySQL 有什么區(qū)別這是面試開場(chǎng)高頻題。標(biāo)準(zhǔn)的回答思路是MySQL 是關(guān)系型數(shù)據(jù)庫(kù)數(shù)據(jù)存儲(chǔ)在磁盤上支持復(fù)雜的 SQL 查詢、事務(wù) ACID、表關(guān)聯(lián)。Redis 是基于內(nèi)存的鍵值存儲(chǔ)讀寫速度快但一般不作為唯一數(shù)據(jù)源而是作為緩存層加速訪問。Redis 支持的數(shù)據(jù)類型更豐富如 String、Hash、List、Set、ZSet每種類型都有自己的適用場(chǎng)景。MySQL 的數(shù)據(jù)一致性由事務(wù)保證Redis 在持久化上存在丟數(shù)據(jù)的可能取決于持久化策略所以兩者一般是配合使用?;卮饡r(shí)要強(qiáng)調(diào)“Redis 不是用來替代 MySQL 的而是為了提升系統(tǒng)的讀取性能”。如果面試官問“為什么不直接用 Redis 存所有數(shù)據(jù)”可以從成本、內(nèi)存容量、事務(wù)能力、持久化能力等方面回答。1.3 Redis 為什么快這個(gè)問題基本必問回答要點(diǎn)可以歸納為四點(diǎn)純內(nèi)存操作。數(shù)據(jù)放在內(nèi)存中讀寫不涉及磁盤 IO。單線程模型。Redis 網(wǎng)絡(luò)請(qǐng)求處理使用單線程避免了多線程上下文切換和鎖競(jìng)爭(zhēng)的開銷。注意Redis 6.0 之后引入了多線程 IO但核心命令執(zhí)行仍然是單線程的。IO 多路復(fù)用。Redis 基于 epoll 實(shí)現(xiàn) IO 多路復(fù)用可以在一個(gè)線程里處理多個(gè)連接的讀寫事件。高效的數(shù)據(jù)結(jié)構(gòu)。Redis 底層使用 SDS、跳表、壓縮列表、哈希表等高效結(jié)構(gòu)在不同數(shù)據(jù)量和場(chǎng)景下自動(dòng)選擇最優(yōu)編碼。面試官可能會(huì)追問“單線程為什么還這么快”核心原因就是 CPU 不是瓶頸內(nèi)存和網(wǎng)絡(luò)的 IO 才是瓶頸而單線程避免了鎖和上下文切換。2. Redis 核心數(shù)據(jù)結(jié)構(gòu)與常見面試問題2.1 String 字符串String 是 Redis 最基礎(chǔ)的數(shù)據(jù)類型value 最大能存儲(chǔ) 512MB。底層實(shí)現(xiàn)是 SDSSimple Dynamic String相比 C 字符串SDS 可以 O(1) 獲取長(zhǎng)度、避免緩沖區(qū)溢出、減少內(nèi)存重分配次數(shù)。常用命令SET key value GET key INCR key DECR key EXPIRE key seconds SETEX key seconds valueString 的典型應(yīng)用場(chǎng)景緩存用戶信息、配置數(shù)據(jù)。計(jì)數(shù)器如點(diǎn)贊數(shù)、訪問量。分布式 ID 生成利用 INCR 命令生成遞增序列。分布式鎖的SET key value NX EX也是基于 String 實(shí)現(xiàn)的。面試題舉例“String 的底層實(shí)現(xiàn)是什么和傳統(tǒng) C 字符串有什么不同”回答時(shí)把 SDS 的動(dòng)態(tài)擴(kuò)容、二進(jìn)制安全、獲取長(zhǎng)度 O(1) 這三個(gè)特點(diǎn)說出來即可。2.2 Hash 哈希Hash 類型是一個(gè) string 類型的 field 和 value 的映射表適合存儲(chǔ)對(duì)象數(shù)據(jù)。比如一個(gè)用戶對(duì)象包含 id、name、age如果用 String 存儲(chǔ)需要序列化整個(gè)對(duì)象更新某個(gè)字段要重新寫入整個(gè)對(duì)象用 Hash 則可以直接更新某個(gè)字段。常用命令HSET user:1001 name zhangsan HGET user:1001 name HGETALL user:1001 HDEL user:1001 name HINCRBY user:1001 age 1Hash 底層在數(shù)據(jù)量小的時(shí)候使用壓縮列表ziplist數(shù)據(jù)量大時(shí)轉(zhuǎn)為哈希表hashtable。因?yàn)?Redis 3.2 之后引入了 listpack不同版本的編碼細(xì)節(jié)略有差異但面試中掌握“小數(shù)據(jù)量壓縮存儲(chǔ)、大數(shù)據(jù)量哈希表”這個(gè)思路就夠了。面試題舉例“Hash 和 String 都存對(duì)象怎么選”一般推薦對(duì)象字段頻繁修改、只需要部分字段時(shí)用 Hash對(duì)象整體讀取、轉(zhuǎn)發(fā)給前端時(shí)用 String JSON 更省內(nèi)存且直觀。2.3 List 列表List 是簡(jiǎn)單的字符串列表按照插入順序排序可以從頭部或尾部添加元素。底層在元素少時(shí)使用壓縮列表元素多時(shí)轉(zhuǎn)為雙向鏈表quicklist 是 Redis 3.2 之后引入的混合結(jié)構(gòu)。常用命令LPUSH key value [value ...] RPUSH key value [value ...] LPOP key RPOP key LRANGE key start stop LLEN key典型應(yīng)用場(chǎng)景消息隊(duì)列LPUSH BRPOP 實(shí)現(xiàn)簡(jiǎn)單的生產(chǎn)消費(fèi)模型。最新動(dòng)態(tài)列表用 LPUSH 把新數(shù)據(jù)放到頭部用 LRANGE 分頁(yè)查詢。時(shí)間線列表關(guān)注的人發(fā)布動(dòng)態(tài)后推送到自己的 List 中。面試題舉例“List 和 Stream 做消息隊(duì)列有什么區(qū)別”List 結(jié)構(gòu)簡(jiǎn)單但無法支持消費(fèi)組、消息確認(rèn)等特性Redis Stream5.0 引入支持消費(fèi)者組、消息持久化、ACK 確認(rèn)更適合可靠性要求更高的場(chǎng)景。2.4 Set 集合Set 是無序、不可重復(fù)的字符串集合。集合操作支持交集、并集、差集這是它在業(yè)務(wù)中最大的價(jià)值。常用命令SADD key member [member ...] SMEMBERS key SREM key member SISMEMBER key member SINTER key1 key2 # 交集 SUNION key1 key2 # 并集 SDIFF key1 key2 # 差集典型應(yīng)用場(chǎng)景抽獎(jiǎng)去重用戶參與抽獎(jiǎng)SADD 時(shí)自動(dòng)去重。共同關(guān)注用 SINTER 獲取兩個(gè)用戶的共同關(guān)注列表。標(biāo)簽系統(tǒng)給文章打標(biāo)簽用 SMEMBERS 查詢標(biāo)簽用 SINTER 查同時(shí)包含多個(gè)標(biāo)簽的文章。2.5 ZSet 有序集合ZSet 在 Set 的基礎(chǔ)上給每個(gè)成員增加了一個(gè) score分值Redis 根據(jù) score 自動(dòng)排序。底層實(shí)現(xiàn)是跳表skiplist加哈希表。常用命令ZADD key score member ZRANGE key start stop ZREVRANGE key start stop ZSCORE key member ZINCRBY key increment member ZRANK key member典型應(yīng)用場(chǎng)景排行榜。比如游戲積分排行榜、商品銷量榜用 ZINCRBY 增加分?jǐn)?shù)用 ZREVRANGE 獲取 Top N。延遲隊(duì)列。把任務(wù)執(zhí)行時(shí)間作為 score用一個(gè)線程輪詢 ZRANGEBYSCORE 獲取到期的任務(wù)?;瑒?dòng)窗口限流。用 score 存時(shí)間戳通過 ZRANGEBYSCORE 統(tǒng)計(jì)時(shí)間窗口內(nèi)的請(qǐng)求數(shù)。面試中經(jīng)常追問“ZSet 的底層結(jié)構(gòu)為什么用跳表而不是紅黑樹”回答要點(diǎn)跳表實(shí)現(xiàn)簡(jiǎn)單、支持范圍查詢、在有序集合的場(chǎng)景下性能足夠O(log N)而且跳表更適合做范圍查找ZSet 的核心操作就是按分?jǐn)?shù)范圍取數(shù)據(jù)。2.6 其他高級(jí)數(shù)據(jù)類型面試加分項(xiàng)Bitmap位圖用位操作存儲(chǔ)布爾型數(shù)據(jù)典型場(chǎng)景是用戶簽到、在線狀態(tài)。HyperLogLog去重計(jì)數(shù)內(nèi)存極小適合統(tǒng)計(jì) UV。GEO地理位置存儲(chǔ)適合“附近的人”功能。Stream可靠消息隊(duì)列支持消費(fèi)者組。這部分可以展示知識(shí)廣度面試官如果追問能說出“GEO 底層基于 ZSet 實(shí)現(xiàn)每個(gè)位置的經(jīng)緯度會(huì)被編碼為 score”這種程度就夠用了。3. Redis 持久化機(jī)制RDB 和 AOF3.1 為什么需要持久化Redis 是內(nèi)存型數(shù)據(jù)庫(kù)如果進(jìn)程異常退出或服務(wù)器宕機(jī)內(nèi)存中的數(shù)據(jù)會(huì)全部丟失。持久化的目的就是把內(nèi)存中的數(shù)據(jù)保存到磁盤上使 Redis 重啟時(shí)能夠恢復(fù)數(shù)據(jù)。面試中問到持久化通常圍繞兩個(gè)問題RDB 和 AOF 分別是什么如何選擇3.2 RDB 快照持久化RDBRedis DataBase是在指定時(shí)間間隔內(nèi)將內(nèi)存中的數(shù)據(jù)集快照寫入磁盤生成一個(gè)二進(jìn)制的 dump.rdb 文件。觸發(fā)方式# 手動(dòng)觸發(fā) SAVE BGSAVE # 自動(dòng)觸發(fā)在 redis.conf 中配置 save 900 1 save 300 10 save 60 10000SAVE 會(huì)阻塞 Redis 主進(jìn)程BGSAVE 會(huì) fork 子進(jìn)程來生成 RDB主進(jìn)程繼續(xù)處理命令。面試中需要說清楚RDB 的優(yōu)點(diǎn)是文件緊湊、恢復(fù)速度快、適合做備份和災(zāi)難恢復(fù)缺點(diǎn)是可能丟失最后一次快照之后的數(shù)據(jù)同時(shí) fork 子進(jìn)程在大數(shù)據(jù)量下會(huì)有短暫的阻塞。3.3 AOF 追加持久化AOFAppend Of File會(huì)把每次寫命令追加到 aof 文件末尾。Redis 重啟時(shí)通過重新執(zhí)行 AOF 文件中的命令來恢復(fù)數(shù)據(jù)。AOF 默認(rèn)是關(guān)閉的開啟配置appendonly yes appendfilename appendonly.aof appendfsync always appendfsync everysec appendfsync no配置項(xiàng)說明always每次寫入都同步到磁盤數(shù)據(jù)最安全性能最差。everysec每秒同步一次最多丟失 1 秒數(shù)據(jù)是推薦配置。no由操作系統(tǒng)決定什么時(shí)候同步性能好但安全性不可控。為了避免 AOF 文件過大Redis 提供了 AOF 重寫機(jī)制通過BGREWRITEAOF命令或自動(dòng)觸發(fā)用盡可能少的命令來記錄當(dāng)前數(shù)據(jù)集。3.4 RDB 和 AOF 怎么選對(duì)比項(xiàng)RDBAOF文件大小二進(jìn)制壓縮文件小記錄寫命令文件較大恢復(fù)速度快較慢數(shù)據(jù)安全性可能丟較多數(shù)據(jù)最多丟 1 秒everysec對(duì)性能影響fork 子進(jìn)程可能瞬間阻塞寫頻率高時(shí)影響較大生產(chǎn)環(huán)境常用的方案是同時(shí)開啟 RDB 和 AOF。Redis 優(yōu)先使用 AOF 恢復(fù)數(shù)據(jù)因?yàn)?AOF 數(shù)據(jù)更完整同時(shí)利用 RDB 做定期備份。如果對(duì)數(shù)據(jù)丟失容忍度很低必須開啟 AOF 并設(shè)置 appendfsync everysec。4. 緩存設(shè)計(jì)穿透、擊穿、雪崩與解決方案4.1 緩存穿透緩存穿透是指查詢一個(gè)不存在的數(shù)據(jù)緩存中沒有數(shù)據(jù)庫(kù)中也沒有導(dǎo)致每次請(qǐng)求都直接打到數(shù)據(jù)庫(kù)。如果有惡意攻擊者持續(xù)構(gòu)造不存在的 key數(shù)據(jù)庫(kù)壓力驟增。解決方案緩存空值查詢結(jié)果為空也緩存設(shè)置較短的過期時(shí)間。布隆過濾器把所有可能存在的數(shù)據(jù)哈希到一個(gè) bitmap 中請(qǐng)求先經(jīng)過布隆過濾器過濾掉大部分不存在的 key。參數(shù)校驗(yàn)在接口層攔截明顯不合法的請(qǐng)求。示例代碼緩存空值使用 Spring Data Redispublic Object getData(String key) { Object value redisTemplate.opsForValue().get(key); if (value ! null) { return value; } // 模擬從數(shù)據(jù)庫(kù)查詢 Object dbValue queryFromDB(key); if (dbValue null) { // 緩存空值防止穿透過期時(shí)間設(shè)置短一些 redisTemplate.opsForValue().set(key, , 60, TimeUnit.SECONDS); } else { redisTemplate.opsForValue().set(key, dbValue, 30, TimeUnit.MINUTES); } return dbValue; }4.2 緩存擊穿緩存擊穿是指某個(gè)熱點(diǎn) key 剛好在過期時(shí)間失效此時(shí)大量并發(fā)請(qǐng)求同時(shí)查詢這個(gè) key緩存未命中請(qǐng)求全部打到數(shù)據(jù)庫(kù)。解決方案互斥鎖只允許一個(gè)線程查數(shù)據(jù)庫(kù)并重建緩存其他線程等待。邏輯過期緩存中不設(shè)置物理過期時(shí)間而是存儲(chǔ)一個(gè)邏輯過期時(shí)間字段查詢時(shí)判斷是否過期如果過期則異步重建緩存。熱點(diǎn)數(shù)據(jù)永不過期在 value 中保存過期時(shí)間業(yè)務(wù)層判斷后異步更新。這里給出基于互斥鎖的簡(jiǎn)化示例public String getHotData(String key) { String value redisTemplate.opsForValue().get(key); if (value ! null) { return value; } String lockKey lock: key; boolean locked redisTemplate.opsForValue().setIfAbsent(lockKey, 1, 3, TimeUnit.SECONDS); if (locked) { try { value queryFromDB(key); redisTemplate.opsForValue().set(key, value, 30, TimeUnit.MINUTES); return value; } finally { redisTemplate.delete(lockKey); } } else { // 等待其他線程寫入緩存 try { Thread.sleep(100); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } return getHotData(key); } }互斥鎖方案簡(jiǎn)單有效代價(jià)是緩存重建期間有少量線程等待。實(shí)際項(xiàng)目中要重點(diǎn)關(guān)注鎖的釋放避免因異常導(dǎo)致鎖無法釋放。4.3 緩存雪崩緩存雪崩是指大量 key 在同一時(shí)間失效或者 Redis 服務(wù)宕機(jī)導(dǎo)致所有請(qǐng)求直接打到數(shù)據(jù)庫(kù)。解決方案過期時(shí)間隨機(jī)化在設(shè)置過期時(shí)間時(shí)加上一個(gè)隨機(jī)值避免同一時(shí)間大面積失效。Redis 集群高可用使用主從復(fù)制、哨兵或 Cluster 模式避免單點(diǎn)故障。多級(jí)緩存本地緩存如 Caffeine Redis 緩存即使 Redis 不可用本地緩存也能扛一部分流量。服務(wù)降級(jí)在數(shù)據(jù)庫(kù)層增加限流和降級(jí)策略保護(hù)數(shù)據(jù)庫(kù)不被壓垮。面試中更好的回答是“緩存雪崩的重點(diǎn)不是如何保證 Redis 不宕機(jī)而是要在 Redis 不可用或緩存大規(guī)模失效時(shí)系統(tǒng)依然能通過降級(jí)、限流、多級(jí)緩存等手段保持可用?!?.4 緩存一致性問題只要用 Redis 做緩存就繞不開“緩存和數(shù)據(jù)庫(kù)數(shù)據(jù)不一致”的問題。常見的方案Cache Aside Pattern旁路緩存讀的時(shí)候先讀緩存緩存沒有則讀數(shù)據(jù)庫(kù)并回填寫的時(shí)候先更新數(shù)據(jù)庫(kù)再刪除緩存。延遲雙刪更新數(shù)據(jù)庫(kù)后刪除緩存等一段時(shí)間再次刪除避免并發(fā)下讀到舊數(shù)據(jù)。基于 Canal 監(jiān)聽 MySQL binlog異步更新緩存。面試中不要只說一個(gè)方案要能分析利弊。比較推薦的回答一般業(yè)務(wù)采用 Cache Aside 模式更新時(shí)“先更新數(shù)據(jù)庫(kù)再刪除緩存”如果要求更高的一致性可以引入分布式事務(wù)或 binlog 異步同步但這會(huì)增加系統(tǒng)復(fù)雜度需要根據(jù)業(yè)務(wù)權(quán)衡。5. Redis 分布式鎖5.1 為什么要用分布式鎖在分布式系統(tǒng)中多個(gè)服務(wù)實(shí)例同時(shí)操作共享資源時(shí)Java 的synchronized和ReentrantLock只能鎖住當(dāng)前 JVM 內(nèi)的線程無法跨進(jìn)程互斥。分布式鎖就是讓多個(gè)進(jìn)程之間通過 Redis 實(shí)現(xiàn)互斥訪問。5.2 基于 Redis 實(shí)現(xiàn)分布式鎖的演進(jìn)最早的方案是使用SETNX加鎖然后EXPIRE設(shè)置過期時(shí)間但這兩個(gè)命令不是原子的如果在 SETNX 之后、EXPIRE 之前進(jìn)程崩潰鎖就會(huì)永遠(yuǎn)不釋放。后來 Redis 官方推薦使用SET key value NX EX seconds一條命令完成加鎖和過期時(shí)間設(shè)置。加鎖命令SET lock:order:1001 uuid_value NX EX 30釋放鎖時(shí)不能直接DEL因?yàn)槿绻i已經(jīng)過期另一個(gè)線程獲取了同一把鎖當(dāng)前線程再執(zhí)行 DEL 就會(huì)誤刪別人的鎖。所以釋放鎖需要先比較 value 是否還是自己的再刪除這個(gè)過程要用 Lua 腳本保證原子性-- 釋放鎖的 Lua 腳本 if redis.call(get, KEYS[1]) ARGV[1] then return redis.call(del, KEYS[1]) else return 0 endJava 中通過 Spring Data Redis 執(zhí)行 Lua 腳本private static final String UNLOCK_SCRIPT if redis.call(get, KEYS[1]) ARGV[1] then return redis.call(del, KEYS[1]) else return 0 end; public void unlock(String lockKey, String requestId) { DefaultRedisScriptLong script new DefaultRedisScript(UNLOCK_SCRIPT, Long.class); redisTemplate.execute(script, Arrays.asList(lockKey), requestId); }5.3 Redisson 與看門狗機(jī)制手寫分布式鎖需要處理各種邊界條件生產(chǎn)環(huán)境推薦使用 Redisson。Redisson 提供了RLock內(nèi)部通過 Lua 腳本實(shí)現(xiàn)加鎖、解鎖、重入還提供了看門狗機(jī)制如果鎖的持有者沒有顯式釋放鎖看門狗會(huì)每隔一段時(shí)間自動(dòng)續(xù)期防止業(yè)務(wù)沒執(zhí)行完鎖就過期了。RLock lock redissonClient.getLock(lock:order:1001); try { // 嘗試加鎖最多等待 5 秒鎖有效期默認(rèn) 30 秒看門狗會(huì)自動(dòng)續(xù)期 if (lock.tryLock(5, TimeUnit.SECONDS)) { // 業(yè)務(wù)邏輯 } } finally { if (lock.isHeldByCurrentThread()) { lock.unlock(); } }5.4 RedLock 有必要用嗎RedLock 是 Redis 官方提出的多節(jié)點(diǎn)分布式鎖算法要求向多個(gè)獨(dú)立的 Redis 主節(jié)點(diǎn)加鎖超過半數(shù)成功才算加鎖成功。面試中經(jīng)常被問到但實(shí)際項(xiàng)目中較少使用因?yàn)?RedLock 依賴時(shí)鐘同步、網(wǎng)絡(luò)延遲實(shí)現(xiàn)復(fù)雜且在多主切換下仍存在一致性問題。推薦回答思路“單節(jié)點(diǎn) Redis 鎖 Redisson 的看門狗在絕大多數(shù)業(yè)務(wù)中已經(jīng)夠用如果要更強(qiáng)的安全性優(yōu)先考慮 ZooKeeper 或 etcd 的分布式鎖而不是 RedLock?!?. Redis 集群與可用性6.1 主從復(fù)制Redis 主從復(fù)制是指一臺(tái)主節(jié)點(diǎn)Master將數(shù)據(jù)同步到多臺(tái)從節(jié)點(diǎn)Slave實(shí)現(xiàn)讀寫分離和容災(zāi)。主節(jié)點(diǎn)負(fù)責(zé)寫操作從節(jié)點(diǎn)負(fù)責(zé)讀操作數(shù)據(jù)由主節(jié)點(diǎn)單向同步到從節(jié)點(diǎn)。順序上主從復(fù)制分為兩個(gè)階段全量復(fù)制從節(jié)點(diǎn)首次同步時(shí)主節(jié)點(diǎn)生成 RDB 快照并發(fā)送給從節(jié)點(diǎn)。增量復(fù)制后續(xù)主節(jié)點(diǎn)把寫命令發(fā)送給從節(jié)點(diǎn)。從節(jié)點(diǎn)斷開重連后主節(jié)點(diǎn)通過復(fù)制積壓緩沖區(qū)同步斷連期間的數(shù)據(jù)。配置方式# 從節(jié)點(diǎn)配置 replicaof 127.0.0.1 63796.2 哨兵模式主從復(fù)制解決了數(shù)據(jù)備份和讀寫分離但主節(jié)點(diǎn)宕機(jī)后需要人工把某個(gè)從節(jié)點(diǎn)提升為主節(jié)點(diǎn)。哨兵Sentinel可以自動(dòng)監(jiān)控主節(jié)點(diǎn)和從節(jié)點(diǎn)的健康狀態(tài)在主節(jié)點(diǎn)故障時(shí)自動(dòng)完成故障轉(zhuǎn)移從剩余從節(jié)點(diǎn)中選舉新的主節(jié)點(diǎn)。哨兵的關(guān)鍵作用監(jiān)控檢查主從節(jié)點(diǎn)的運(yùn)行狀態(tài)。通知節(jié)點(diǎn)故障時(shí)通知其他實(shí)例。自動(dòng)故障轉(zhuǎn)移主節(jié)點(diǎn)不可用時(shí)自動(dòng)選舉新的主節(jié)點(diǎn)。配置中心客戶端通過哨兵獲取當(dāng)前主節(jié)點(diǎn)地址。6.3 Cluster 集群模式Redis Cluster 是 Redis 3.0 引入的分布式解決方案能夠?qū)?shù)據(jù)自動(dòng)分片到多個(gè)節(jié)點(diǎn)上每個(gè)節(jié)點(diǎn)保存一部分?jǐn)?shù)據(jù)。Redis Cluster 采用無中心化架構(gòu)節(jié)點(diǎn)之間通過 Gossip 協(xié)議通信。分片原理整個(gè)數(shù)據(jù)空間被劃分為 16384 個(gè)哈希槽slot。每個(gè)節(jié)點(diǎn)負(fù)責(zé)一部分 slot例如三主節(jié)點(diǎn)分別負(fù)責(zé) 0~5460、5461~10922、10923~16383。計(jì)算 key 的 CRC16 值然后對(duì) 16384 取模得到該 key 應(yīng)該存儲(chǔ)到哪個(gè) slot。Cluster 模式的優(yōu)勢(shì)是支持水平擴(kuò)展性能隨節(jié)點(diǎn)增加而提升。需要注意的坑是 Cluster 模式下不支持多 key 操作除非這些 key 在同一個(gè) slot因此需要使用 Hash Tag 技術(shù)讓相關(guān) key 落到同一個(gè)槽位。面試常見問題“為什么 Redis Cluster 是 16384 個(gè)槽”常見的解釋是16384 個(gè)槽在保證數(shù)據(jù)分布均勻的同時(shí)可以使節(jié)點(diǎn)間心跳消息中的位圖更小減少帶寬消耗且對(duì)于常用規(guī)模的集群已經(jīng)足夠。6.4 一致性哈希和哈希槽可能被追問“Redis 為什么不用一致性哈?!?。一致性哈希是分布式緩存中常用的分片算法如 Memcached但 Redis Cluster 選擇哈希槽的原因主要有哈希槽將數(shù)據(jù)分成固定數(shù)量的槽位節(jié)點(diǎn)增減時(shí)只需要遷移部分槽位數(shù)據(jù)遷移范圍可控。槽位和節(jié)點(diǎn)的映射關(guān)系明確客戶端可以精確計(jì)算 key 所在節(jié)點(diǎn)。數(shù)據(jù)遷移時(shí)是以槽為單位進(jìn)行操作粒度更清晰。7. Redis 內(nèi)存淘汰與常見問題排查7.1 過期刪除策略Redis 的過期刪除策略是“惰性刪除 定期刪除”的結(jié)合惰性刪除訪問 key 時(shí)檢查是否過期過期則刪除。優(yōu)點(diǎn)是不占用額外 CPU缺點(diǎn)是過期 key 可能長(zhǎng)期占用內(nèi)存。定期刪除Redis 每隔一段時(shí)間隨機(jī)抽取一部分設(shè)置了過期時(shí)間的 key刪除其中已過期的 key。7.2 內(nèi)存淘汰策略當(dāng) Redis 內(nèi)存達(dá)到maxmemory限制后會(huì)根據(jù)配置的maxmemory-policy進(jìn)行淘汰。常見配置項(xiàng)策略含義noeviction不淘汰寫入時(shí)報(bào)錯(cuò)allkeys-lru從所有 key 中按 LRU 淘汰volatile-lru從設(shè)置了過期時(shí)間的 key 中按 LRU 淘汰allkeys-lfu從所有 key 中按 LFU 淘汰volatile-lfu從設(shè)置了過期時(shí)間的 key 中按 LFU 淘汰allkeys-random從所有 key 中隨機(jī)淘汰volatile-ttl從設(shè)置了過期時(shí)間且剩余時(shí)間最短的 key 中淘汰面試中回答“生產(chǎn)環(huán)境推薦哪種策略”時(shí)不要直接說“用 allkeys-lru”。正確的思路是優(yōu)先給每個(gè) key 設(shè)置合理的過期時(shí)間根據(jù)業(yè)務(wù)是否允許緩存丟失決定使用 volatile-lru 還是 allkeys-lru如果業(yè)務(wù)數(shù)據(jù)要求嚴(yán)格不淘汰則使用 noeviction 并做好告警。7.3 內(nèi)存不足報(bào)錯(cuò) OutOfMemoryErrorJVM 項(xiàng)目和 Redis 都會(huì)出現(xiàn)內(nèi)存不足的報(bào)錯(cuò)。熱詞中出現(xiàn)的java: outofmemoryerror: insufficient memory屬于 JVM 啟動(dòng)時(shí)內(nèi)存不足常見原因是啟動(dòng) JVM 時(shí)指定的 -Xmx 大于物理內(nèi)存。服務(wù)器內(nèi)存被其他進(jìn)程占用剩余可用內(nèi)存不足。系統(tǒng)沒有足夠交換空間。排查方法# 查看系統(tǒng)內(nèi)存 free -h # 查看 Java 進(jìn)程內(nèi)存占用 ps aux | grep java jmap -heap pid如果 Redis 本身內(nèi)存不足可以檢查maxmemory配置、大 key、連接數(shù)、內(nèi)存碎片率必要時(shí)擴(kuò)容或清理大 key。7.4 連接失敗和超時(shí)Redis 連接失敗通常表現(xiàn)為ERR max number of clients reached或RedisConnectionFailureException。排查思路檢查 Redis 服務(wù)是否啟動(dòng)redis-cli ping。檢查端口連通性telnet 127.0.0.1 6379。檢查客戶端最大連接數(shù)配置CONFIG GET maxclients。檢查防火墻和遠(yuǎn)程訪問配置bind、protected-mode。檢查業(yè)務(wù)代碼是否存在連接池泄漏用完連接沒有釋放。Spring Boot 中可以通過配置連接池參數(shù)優(yōu)化spring.redis.hostlocalhost spring.redis.port6379 spring.redis.lettuce.pool.max-active50 spring.redis.lettuce.pool.max-idle20 spring.redis.lettuce.pool.min-idle5 spring.redis.lettuce.pool.max-wait3000ms7.5 熱詞背后的 Redis 高頻面試題庫(kù)根據(jù)搜索熱詞高頻被搜的還有redis 下載、windows 安裝 redis、docker 安裝 redis 主從、redis desktop manager 可視化客戶端、redis 緩存治理。這些屬于環(huán)境搭建和運(yùn)維工具建議在復(fù)習(xí)基礎(chǔ)知識(shí)的同時(shí)把本機(jī)環(huán)境搭好用 Redis Desktop Manager 或 Another Redis Desktop Manager 連一次能加深對(duì) Redis 數(shù)據(jù)結(jié)構(gòu)的印象。8. 三天沖刺計(jì)劃與復(fù)習(xí)建議8.1 第 1 天數(shù)據(jù)結(jié)構(gòu)與基礎(chǔ)命令把 String、Hash、List、Set、ZSet 的常用命令全部敲一遍。理解每個(gè)類型的底層編碼和適用場(chǎng)景。用 Spring Data Redis 寫一個(gè)增刪改查的小 Demo。當(dāng)天結(jié)束前完成自測(cè)能默寫每種數(shù)據(jù)類型至少兩個(gè)應(yīng)用場(chǎng)景。8.2 第 2 天持久化、緩存問題與分布式鎖配置 RDB 和 AOF觀察 dump.rdb 和 appendonly.aof 文件的生成。手寫緩存穿透、擊穿、雪崩的解決方案示例。手寫 SET NX EX 分布式鎖和 Lua 解鎖腳本??赐?Redisson 官方文檔了解 RLock 基本用法。8.3 第 3 天集群、運(yùn)維與面試模擬用 Docker 搭建一主兩從、哨兵或 Cluster 環(huán)境。檢查 Redis 日志分析主從復(fù)制和故障轉(zhuǎn)移的過程。把高頻面試題制作成卡片按“先結(jié)論后原理再舉例”的方式模擬作答。# Docker 搭建 Redis 主從示例 docker run -d --name redis-master -p 6379:6379 redis:latest docker run -d --name redis-slave1 -p 6380:6379 --link redis-master \ redis:latest redis-server --replicaof redis-master 6379 docker run -d --name redis-slave2 -p 6381:6379 --link redis-master \ redis:latest redis-server --replicaof redis-master 63798.4 面試答題的通用模板面試中回答 Redis 相關(guān)問題時(shí)推薦采用“結(jié)論先行展開原理結(jié)合實(shí)際場(chǎng)景”的結(jié)構(gòu)先給結(jié)論用一兩句話說清楚是什么比如“緩存雪崩是指大量 key 同時(shí)過期導(dǎo)致請(qǐng)求打到數(shù)據(jù)庫(kù)”。展開原因和原理說明為什么會(huì)出現(xiàn)。給出解決方案結(jié)合自己的項(xiàng)目經(jīng)驗(yàn)描述實(shí)際是怎么處理的。如果被追問說明方案的優(yōu)缺點(diǎn)和備選方案。8.5 面試中避免踩的坑只背結(jié)論不解釋原理。面試官只要追問“為什么”就會(huì)暴露。忽略版本差異。Redis 6.0 引入了多線程 IO5.0 引入了 Stream不同版本支持的配置和行為有差異回答時(shí)注明“以 Redis 6.x/7.x 為例”。不區(qū)分單機(jī)和生產(chǎn)環(huán)境。面試官問分布式鎖就不要只說SETNX一條命令完事要聊到鎖釋放的原子性、看門狗、集群下的問題。空談高并發(fā)。說“我們項(xiàng)目用了 Redis”時(shí)至少能說出具體存了什么、為什么用 Hash 而不是 String、過期時(shí)間怎么設(shè)置的。9. Redis 面試中容易被忽略的細(xì)節(jié)9.1 Redis 是單線程的為什么還要用連接池雖然是單線程處理命令但每個(gè)客戶端連接都需要占用一個(gè)文件描述符建立和斷開連接也有開銷。連接池的作用是復(fù)用已經(jīng)建立的連接減少 TCP 握手和 Redis 處理連接事件的消耗讓業(yè)務(wù)代碼在高并發(fā)下不至于頻繁創(chuàng)建連接。9.2 大 key 和熱 key 問題大 key 是指 value 非常大例如一個(gè) List 有幾百萬(wàn)個(gè)元素或包含大量元素的 key。大 key 會(huì)造成阻塞、內(nèi)存不均、網(wǎng)絡(luò)擁塞。熱 key 是指被高頻訪問的 key可能單點(diǎn)壓力過大。解決方案大 key 拆分將大對(duì)象的字段拆分到多個(gè) Hash key 中。對(duì)大 key 使用 SCAN 命令掃描避免使用 KEYS。熱 key 加本地緩存或副本分散讀壓力。使用redis-cli --bigkeys掃描大 key。9.3 為什么生產(chǎn)環(huán)境禁止使用 KEYS 命令KEYS 命令會(huì)遍歷所有 key在數(shù)據(jù)量大的情況下阻塞 Redis 主線程導(dǎo)致整個(gè)實(shí)例不可服務(wù)。推薦使用 SCAN 命令分批迭代不會(huì)阻塞。SCAN 0 MATCH user:* COUNT 1009.4 Redis 事務(wù)和 Lua 腳本Redis 事務(wù)通過 MULTI、EXEC、DISCARD 實(shí)現(xiàn)和 MySQL 事務(wù)不同Redis 事務(wù)不支持回滾只是把命令按順序打包執(zhí)行。如果在事務(wù)中發(fā)現(xiàn)命令語(yǔ)法錯(cuò)誤事務(wù)會(huì)中斷如果運(yùn)行時(shí)錯(cuò)誤如對(duì)字符串執(zhí)行 INCR其他命令仍會(huì)執(zhí)行。Lua 腳本則可以通過EVAL和EVALSHA將一段邏輯在服務(wù)端原子執(zhí)行在分布式鎖、限流等場(chǎng)景中非常常用。10. 實(shí)戰(zhàn)踩坑記錄10.1 緩存和數(shù)據(jù)庫(kù)一致性出問題業(yè)務(wù)中曾經(jīng)出現(xiàn)過修改用戶信息后緩存里還是舊數(shù)據(jù)的情況。原因是代碼里先刪緩存再更新數(shù)據(jù)庫(kù)并發(fā)情況下另一個(gè)線程先查數(shù)據(jù)庫(kù)還沒寫完然后更新線程把舊數(shù)據(jù)又寫回緩存。后來統(tǒng)一改成“先更新數(shù)據(jù)庫(kù)再刪除緩存”并加上延遲雙刪兜底才基本解決了問題。10.2 分布式鎖導(dǎo)致的死鎖手寫分布式鎖時(shí)使用 SETNX 加鎖后忘記設(shè)置過期時(shí)間在業(yè)務(wù)出現(xiàn)異常時(shí)鎖沒有被釋放其他線程一直拿不到鎖。排查發(fā)現(xiàn)鎖的 value 沒有區(qū)分線程釋放鎖時(shí)直接 DEL導(dǎo)致誤刪了其他線程的鎖。后來統(tǒng)一改為隨機(jī) UUID 作為 value并用 Lua 腳本校驗(yàn)后刪除。10.3 Redis 連接數(shù)被打滿上線后發(fā)現(xiàn)大量報(bào)錯(cuò)ERR max number of clients reached原因是項(xiàng)目使用redisTemplate時(shí)沒有配置連接池的最大值默認(rèn)連接數(shù)不夠同時(shí)部分請(qǐng)求執(zhí)行很慢連接被長(zhǎng)期占用。解決方式是調(diào)大連接池最大連接數(shù)并優(yōu)化慢查詢排查業(yè)務(wù)代碼中是否有大量不必要的 Redis 操作。11. 常見問題速查表下面這張表匯總了 Redis 面試中最高頻的 12 個(gè)問題可以作為考前最后一天的速查清單問題核心回答要點(diǎn)Redis 為什么快內(nèi)存存儲(chǔ)、單線程、IO 多路復(fù)用、高效數(shù)據(jù)結(jié)構(gòu)Redis 有哪些數(shù)據(jù)類型String、Hash、List、Set、ZSet、Bitmap、HyperLogLog、GEO、StreamString 底層是什么SDSO(1) 獲取長(zhǎng)度、避免緩沖區(qū)溢出、動(dòng)態(tài)擴(kuò)容ZSet 底層為什么要用跳表實(shí)現(xiàn)簡(jiǎn)單、支持范圍查詢、O(log N) 性能RDB 和 AOF 怎么選同時(shí)開啟AOF 恢復(fù)為主RDB 做備份什么是緩存穿透查詢不存在的數(shù)據(jù)布隆過濾器或緩存空值什么是緩存擊穿熱點(diǎn) key 失效互斥鎖或邏輯過期什么是緩存雪崩大量 key 同時(shí)失效或 Redis 宕機(jī)過期時(shí)間隨機(jī)化、集群高可用分布式鎖怎么實(shí)現(xiàn)SET NX EX Lua 解鎖生產(chǎn)用 RedissonRedis 集群有幾種主從、哨兵、Cluster演進(jìn)關(guān)系Cluster 數(shù)據(jù)分片怎么分CRC16(key) % 16384 定位哈希槽Redis 內(nèi)存滿了怎么辦maxmemory-policy 配置淘汰策略推薦 volatile-lru 或 allkeys-lru這份速查表里的每個(gè)問題都應(yīng)該能展開講 3 到 5 分鐘。Redis 面試題表面上看是背考點(diǎn)實(shí)際上考的是對(duì)緩存設(shè)計(jì)和分布式場(chǎng)景的理解。把數(shù)據(jù)結(jié)構(gòu)、持久化、緩存問題、分布式鎖、集群模式這幾條主線串起來配合手寫命令和代碼3 天時(shí)間足夠把 Redis 這一塊準(zhǔn)備得比較扎實(shí)。面試時(shí)如果能隨口說出 LInux 下的 redis-cli 命令以及 Spring Boot 中如何配置連接池會(huì)明顯比只會(huì)背概念的候選人更有競(jìng)爭(zhēng)力。這份清單可以先存下來每天過一遍8 月面試時(shí)不慌。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲欧美黄| 12一15性XXXX粉嫩国产| 欧美性爱日韩性爱| 精品无人区麻豆乱码久久久| 婷婷婷婷婷婷久久久久| 色欧美天天| 国产精品另类一区大香蕉| 草草网站影院白丝内射| 亚洲第2页| 久久99黄色卞西瓜| 日韩中文字幕视频| 四虎免费看黄| 翔田千里AⅤHD无码| 天无日色综合| 三久久久四久久久久| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | av婷婷色网| 97在线公开视频| 日韩人成网站在线播放| 亚洲在钱| 亚洲精品日日夜夜52| 狠狠躁久久躁| 另类图片五月| 天天综合网网欲色| 久草久热| 亚洲 中文字幕 精品| 欧美午夜精品久久久久久超碰| 99久久免费看精品国产一区| 久操大香蕉| 欧美日韩狠狠爱| 欧美性爱在线无码| 亚洲天天自拍| 天天添天天干电影| 亚洲麻豆av一区二区| 男人亚洲91首页在线| 美女好片色日本| 91久久婷婷| 亚洲性刺激| 日韩三级一区 | 久久久无码精品人妻二区| 超碰成人国产| 美女诱惑久久| 中美日韩毛片| 亚洲 自拍偷拍 欧美| 欧美高潮| 丁香五月天婷婷姐| 国产精品成人久久一区二区三区 | 乱操9999| 亚码激情| 乱伦AVxx| 亚洲国产熟妇综合色专区| 超碰日本97美女人妻人人玩人人爱| 青草精品视频-日本久久久久网站| 五月天丁香| 夜夜欧美 | www.婷婷| 亚洲性爱免费电影| 国产精品禁久久久精品| 天天日日舔舔| 亚洲色图欧美色图日韩色图| 99re这里只有| 东京热精品97综合网| 亚洲欧美日韩精品久| 亚洲熟妇A V黑人| 高潮内射在线| 中文字幕中文字幕一区二区| 欧美体内射精| 艳美熟妇先锋一二三区| 亚洲AV无线| 78操B| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 久久久草成人网站久久久草成人久久久草久久久 | 超碰精品97| 日本不卡三级网在线播放| .精品人妻一区二区三| 碰人碰碰人人开房人肉| 天堂精品在线| 欧美色五月| 欧美五十路熟| 男人的天堂网页| 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊| 99热在线观看| 国产精品制服丝袜清纯唯美| 97超碰人妻| 色臀aV| 国色天香av| 26uuu性| 91肉片| 国产成人精品网站| 亚洲精品久久一区二区三区蜜桃臀| 人人色97| 综合久久婷婷| 97国产高清视频在线观看| 91精品网站| 国产热av| 欧美操逼视频二区| 毛片视频白嫩| 久久黄黄| 97碰在线视频| 国产日本久久免费精品| 亚洲欧美日韩精品久| 亚洲在饯| 久久国产精品m码| 亚洲凸凹超碰成人| yazhousetuoumei| 综合五月婷婷| 香蕉久久国产AV一区二区| 精品一二三区女同| 青青草吊丝| 极品色社| 亚洲欧美大| 亚洲五码一区二区三区| 人妻丰满熟妇一区二区三| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 国产性感骚丝袜在线| 色婷婷影视| 强奸乱伦大香蕉网| 午夜精品久久久久久久99蜜桃一| 日本熟女中文字幕一区| 午夜福利一区二区影院| 久9re热视频这里只有精品| 国产丝袜高跟美女av免费观看| 精品视频97| 天无日色综合| 狠狠图片青青草| 久热久一区二区三区| 婷婷中文字幕| 67194无码不卡| 久久这里精品国产99丫e6| 欧美淫穴| 美国美女AV在线| 91neishe| 国产精品久久发布| 国产精品午夜成人福利| 九九夜精品九九在线| 综合网,亚洲,欧美| 97色爱| 欧美精品偷拍| 少妇丝袜在线观看AV| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 青草草免费网站av| 高潮的A片激情扒开一区| AV天堂国产| 欧美自拍偷拍综合图片| 欧美精品日韩久久久九| 淫荡少妇免费| 国产黄色av大片网站| 日韩AV无码中文一区二区| 404操逼福利视频| 日本一区二区做爱的视频| 日韩一级成人毛片免费观看| 国产伦乱91| 十八禁啪啦拍视频无遮挡| 久久久精品无码亚免费| 久久久久久久人妻| 日韩钢筋无码高清啾啾啾| 久久久久ab| 天天内射| 少妇大屁屁| 九九九九精| 一区二区乱码福利| 成人av影院在线观看| 加勒比久久综合网高清| 久久精品国产亚洲AV成人直播| 色情五月综合婷婷| 91亚洲黑人| 亚洲精品欧洲精品| 亚洲久草AV色图| 蜜臀久久99精品久久综合| 啊嗯好大视频在线观看| 日韩图区| 欧美色涩| 久久久无码av精| 午夜精品久久久久久久男人的天堂 | 亚洲少妇喷视频看| 国产熟女一区二区丰满| AV女资源| 欧美日韩另类在线| 国产激情综合五月久久| 人妻无码后入| 欲色综合| 国产操操日韩三级黄| 99re久久| 人人手机欧洲亚洲国产人妻| 综合网亚洲在线| 色欲Av人妻精品一区二| 天天操天天舔| 国模不卡一本二本三电影| 亚洲永久AV无码精品秋霞| 超碰97人人乐| 嫩呦国产一区二区三区AV| 欧美黄片欧美黄片xxx| 欧美日韩m| 天天操天天日青青草超碰av| 青青操网| 嗯嗯嗯啊啊啊在线免费观看| 蜜桃臀久久| 亚洲影院成人| 五月丁香综合激情| 激情综合网一盗摄| 九九精品无码专区免费| 女人的久久久| 9精品久久久久| 性在久久久久久| 久久精品小视频| 日韩97视频| 日韩强奸av| 一区二区三区机械有限公司| 久超超碰| 天天看天天日| 久久五月视频| 内射黑丝袜| 乱操乱伦AV| 成人精品在线观看| 欧美亚洲韩国视频十五区| 内射夫妻三片| 夜夜国产一区| V A在线| 色色五月天婷婷| 99在线啪| A V视频日本| 操人妻逼91| 日韩熟女精品无码专区一区二区 | 久久精品一区一起草| 国产精品麻豆视频网站| 色性荡荡荡荡视频| 91色图| 色欧美天天| 男人的天堂视频精品乱在线| 9久热| 男人网站婷婷| 日韩乱伦AⅤ| 日本天天人人狠狠在线日美女| 久久岛国| 91久精品| 日本操逼视频免费| 亚洲人在线| 黑人猛交| 一区麻豆 高清中文字幕| 亚洲美女AV无码| 花野真衣| 1769一区| 91骚妇| 欧美呦呦性爱| 日韩啪啪啪视频| 粉嫩av久久一区二区三区| 中文字日本乱码| 国产精品免费1区2区视频| 色老汉色| 国产精品人妻熟女aⅴ| 麻豆区99999| 成人精品在线免费视频| 欧美另类自拍| 国内自拍 日韩激情 99| 99超碰网| 日本熟女中文| 国产白丝av| 超碰激情808| 东京热视频网| 肉丝中文无码高清| 亚欧高清在线| 精品久9| 久久99国产综合精品女同| 神马久久久久| 久久久久921| 八人操人人摸人人看| 亚洲脚交| 人妻人人操| 国产激情视频一区区三区| 久99久视频精选| 亚洲无码国产探花在线观看| 蜜桃精品视频一区二区三区| 97色色婷婷| 国产成人欧美精品在线| 丰满精品人妻少妇久久字幕| 日韩精品在线观看网站| 九九热国产| 在线天堂999| 国产午夜福利专区综合| 另类专区加勒比| 欧美亚洲玖玖玖| 激情黄色片在线观看| 色九九综合AV| 国产日本熟女顶级一区二区三区视频| 欧美日韩在线国产在线| 殴美性天天| 艳尻美人妻| 五月丁香综合| 国产精品无码av嫩草| 丝袜美腿操av| wwe 天天干.com| 欧美成人国产精品| 欧美美女自慰一区二区三区| 福利视频一区二区微拍| 欧美性爱第1 页| 亚洲日韩少妇一道本视频| 爱射综合| 狼狼色丁香久久婷婷综合五月| 日本布卡一区二三区| 国产天天骚| 国模精品娜娜一二三区| 国产家庭乱伦性爱视频| 久久99干一本高清| 最新av在线| 成人婷婷丁香| 人妻系列无码专区中文有码| 日韩性爱啪啪视频| 欧美亚州综合网图片| 好吊色一区| 丝袜 亚洲 偷拍| 久久黄色视频一区二区三区| 久久精品国产亚洲AV先锋| 极品色电影院| 久久久穴999| 激情自拍 校园春色| 亚洲中文字母在线播放| 人人玩人人添人人澡免费| 亚洲交换| 操曰本熟女| 青青草黑寡妇男人天堂| 91美女丝袜诱惑视频| 秋霞蝌科网日本一区| 亚洲无992tv| 欧美精品系列| 综合五月天| 极品AV网站在线观看| 色欲天天综合网| 操操吧亚洲乱伦视频| 中文字幕乱亚洲美女精品一区| 劲爆欧美人妖三区91| yirendaxiangjiashipin| 大香蕉123| 99久久久无码国产精品性男| 亚洲黄色a级片| 亚欧毛片基地国产毛片基地| 97色伦97色伦国产欧美| 国产偷拍网站| 中文字幕日韩专区精品系列| 伊人影院日本| 97超碰站| 91精品91久久久久77777俄罗斯老妇姓x| 伊人在线大香蕉视频久久| 人妻人人澡人人爽人人| 四虎免费看黄| 97视频www| 超碰97最新人妻| 色眯眯射| 一区二区蜜臀| 在线视频五十市| 美欧老女人97| 97国产色图| 天天天天天天天天综合| 人妻无码后入| 91高跟美女在线播放| 亚洲人妻熟妇三十三区| 97爱b| 亚洲天堂人人妻| 久久精品国产亚洲AV无码做| 日韩免费大片一级播放| 日韩无码a片| 国产精品熟女九色九色蜜臀| 岛国在线一区二区三区| 色狠狠综合| 五月丁香成人网| 日日狠狠久久偷偷色综合免费| 99视频只有精品| 人妻少妇精品一区二区三区| 日韩99神马视频播放片在线播放| 好吊妞转入那个网| 青青爽| 亚洲影院小综合| 久久综合久久综合人久久夜精品| 青春草A| 色偷综合| 欧美综合1性辶| 97爱综合| 3d成人精品一区二区| 久久久精品无码亚免费| 人人扣人人操| 精品人妻一区二区三区-国产| A啊啊在线观看| 蜜桃精品视频一区二区三区| 人妻少妇精品视频一区二区三区| 另类图片综合| 强奸乱伦日韩AV| 99视频内射三四| 黑丝91视频| 亚洲诱惑| 日韩欧美女求操每天更新| 偷拍精品一区二区三区| 综合操逼| 江都AV在线| 亚洲精品蜜桃久久久久久久| 97国产|免费| 欧美少妇色图| 91三级理论片播放器| 91成人久久| 九九成人| 色偷偷超碰亚洲| 2017天天操| 成人小说视频在线精品欧美| 精品性爱无码在线播放| 三级三久久线久久99久目本WW| 日韩99神马视频播放片在线播放| 97干色天堂| 一区二区播放| 精品无码久久久久久久杏吧| 爽 好舒服 无码刺激久久| 区日韩亚洲乱码av电影| 夜夜夜夜爽| 亚洲97| 精品亚洲黄色片 国产精品导航一区二区| 久9视频| 亚洲精品一卡二卡三卡福利视频网站| 久久久久久999| 欧美一区二区三区四区综合| 婷婷精品| 欧美中字不卡| 日韩激情毛片一级久久久| 色吊丝 日日骚 清纯唯美| 国产一区二区免费福利片| 欧美黄色片AAAAA| 亚洲天堂性爱| 中国91AV| 久久99人妖视频国产| 国产精品2020| 91伊人| 国产AV超爽| 四虎884a| 亚洲天堂加勒比| 国产黄色av大片网站| 屌逼麻豆| 久肏视频字幕| 中文字幕精品日韩中文字幕| 男生女生啊啊啊啊| 免费AV中文网在线观看| 99精品免费| 97草草| 熟女五十路一区二区三| 人妻少妇久久久| 国产精品久久久久久久久久久久久久久久| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 91久久精品中文字幕| 欧美色图私拍91| 欧美性91| 亚洲天堂人妻一区二区| 欧美偷拍| 国产精品久久久久久久黄无码| 久久一区,青青青青草视频在线播放| 大香蕉伊人75| 极品五月天噜噜| 后入日本1234| 五月天黄色av| 九一国产精品| 骚女天天综合网| 天天日天天干天天色| 成 人 影视 一区 二区 三区 四区 | 欧美后入| h无码动漫在线观看| 亚洲有码 视频一区| 欧美精品久久久久久久久88| 亚洲综合首页| 男女一进一出视频久久| 日韩亚洲欧美中文字幕| 欧美一二三区四五区| 九九九九九九成人| 老熟女中文字幕高清| 国产一区二区三区久久精品太古里| 91亚洲狠狠色| 操www| 色爱综合网| 久久人妻97久久久久久久| 久久久久久无码人妻中文字幕| 国产高清自拍| 网页导航五月天免费一二三区| 国产乱婷婷精品二区三区| 大香蕉青青9| 精品免费视频国产一区| 综合熟女| 国产精品69久久久久久久| 日韩黄片影院| 麻豆乱码久久精| 久久超碰com| 综合伊人激情| 青青青艹在线视频| 高清国产精品福利网站| 日韩一区二区精品视频| 少妇三p| 亚洲欧美日韩夜夜| 情色五月天就去干| 女人高潮抽搐喷水视频网站| 久久99草| JIZZJIZZ国产精品喷水| 欧美天天影院| 亚洲精品精品一区二区| 青青草在线视频播放器| av九九| 91热| 熟女丝袜视频| .精品人妻一区二区三| 熟女人妻av在线资源,黄色的资源 粉嫩国产精品久久粉嫩 | 免费看日本操逼视频| 亚洲大色鬼| 操逼网站视频漫画国产| 一本大道青青| 欧美亚洲第1页| 天天日天天干天天操| 欧美色图私拍91| 亚洲欧综合另类无码一区| 91精品少妇搡搡搡| 91黑丝在线播放| 中国一级操逼视频| 国产精品久久发布| 国产精品视频白浆免费| 曰韩人妻中文字幕在线| 亚洲限制级| 五月丁香综合啪啪| 欧美一区二区福利在线| 国产第11页| 蜜桃久久综合视频| 日逼逼免费看| 久久高清无码夜夜操| 色婷婷电影网| 秋霞网—男女啪啪亚洲免费体验区 | 台湾佬中文娱乐自偷自拍| 国产树林里野战在线看| 亚洲精品欧洲色| 精品久久大胆人体| 嗯阿好爽好紧| 中文字幕乱在线伦视频中文字幕乱码在线 | 色97综合中文字幕| 97在线免费看| 久久久夜夜嗨免费视频| 岛国网址国产| 玖玖爱影院| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 丰满搜索结果 -第18页- 久久高清无码 | 玖玖草久草99蜜月一区二区三区| 五月丁香综合激情| 乱伦a片视频| 97欧美色| 日本天堂在线播放| 欧美不卡在线美女| 精品亚洲国产成人AV制服丝袜 | 日韩国产中文字幕| 国产精品干干干| 国产精品一区二区校花| 精品无码久久久久久久久果冻糖心| 超碰精品人妻狠狠干| 五月天加勒比啪| 日夜久久久九九九久| 亚码激情| 亚洲大色堂| 青青草日本无码| 日韩成人电影AV| 欧美视频边做饭边橾| 久久毛卡| 超97在线精品视频| 天天做日日做| 婷婷丁香五月天综合东京热| 国产综合在线视频网站| 操操操五月天婷婷丁香影院| 国产强奸乱伦第1页| 九九热九九| 亚洲无线观看久久| 午夜乱轮操逼视频免费看| 极品另类| 欧美日韩性爱电影在线| 日韩精品一区二区高清| 欧美在线永久天堂| 国产家庭乱伦性爱视频| 国产强奸91| 人人看人人摸人人色| 九九色影院| 人妻熟女午夜精品在线| 99爱久久视频频| 九草在线大香蕉| 怡红院亚洲怡春院av| 男人的天堂va在线| 强歼乱伦资源网| 日本精品成人无码| 2011国产精品| 69丨亚洲丨精品丨入口免费播放| 日韩久草| 久久青青草在线视频| 午夜国产成人精品视频| 三级特黄60分钟播放| 99久久精品国产高潮| 夜色五月天| 精品中文一区二区| 97久久久久| 亚洲精品国产无码高清| 操人妻少妇中文| 国产乱码精品久久久久久| 亚洲狠狠入| 你懂的在线观看区国产| 丁香五月天社区| 男人天堂.AB| 操死我了啊啊啊| 午夜亚洲WWW湿好大| **一级毛片国产| 天天插夜夜爽| 九九九精品一区二区无码| 97超碰国产亚洲精品| 无码粉嫩白虎一线天b区| 欧美翘臀视频网站一区二区三区| 亚洲啪AⅤ永久无码| 亚洲成人久久美女| 精爱久久| 欧美人妻一区二区| WWW.操逼.COM| 亚洲国产麻豆一区二区三区| 99色热| AV老汉| 粉嫩AV一区二区夜夜| 狠狠色伊人亚洲综合网站色| 99热最新网址| 大乔未久88一区| 色综合天天爱去电影网| 欧美性爱一级操| 亚洲黄日韩无码专区| 人妻少妇精品久久久久久| 先锋影音av先锋一区| 婷婷操逼| 我想要啊 啊 啊| 久久黄片国产一区二区| 亚洲色图大香| 日本最新1区2区3区| 色哟哟 日韩精品| 免费观看欧美日韩操逼视频| 天美传媒精品久久视频| 国产专区第一页| 麻豆九九九| 97爱综合| 五月丁香啪啪网| 大色网久久| 国产综合永久精品日韩鬼片| 青青草色情网站视频| 国产一国产一级毛片古装| 久久精彩免费视频| 超碰久超碰久| 激情五月婷婷综合| 欧成人在线| 久久丁香| 亚洲图片欧美色图| 婷婷四五区| 国产精彩女在线观看视频| 国产日逼视频| 果冻传媒A片一二三区 | 欧美天天在线| 无码操逼网| 伊人aaa| 国产熟女乱论| 欧美午夜熟妇黑人精品91| 大香交伊人网| 亚洲一曲日韩精品| 亚洲丝袜诱惑| 麻豆福利视频导航| 亚洲人妻av| 亚洲18禁| 婷婷亚洲天堂| 久久久久久国产手机AV| 黄片www视频免费| 精品9999| 激情五月天校园春色网| 日韩av三四区| 亚洲精品 欧美精品| 午夜婷婷| 中文字幕第9页萱萱影音先锋| 欧美久久人妻少妇一区二区| 99re在线精品78| 无遮挡猛进视频免费无限观看| AV天黑人| 五月婷婷丁香| 香蕉精品二区二区| 午夜男女爽爽大片免费观看| 色婷婷成人综合| 国产女人操逼视频| 曰韩人妻中文字幕在线| 亚州国产成人精品女人久久| 性色乱AV一区二区| 国产做?爰片久久毛片?片美国| 99久久久无码国产精品性啊聊| 久操 高清| 久久婷五月天| 性九九九九九九| 久久这里是精品| 欧美激情精品久久久| 天美精品av| 一起草日韩| 日本韩高清无砖码22o| 啊啊啊爽爽| 亚洲性综合9| 久久久精品电影| 中文字幕青青草| 欧美丝袜91| 涩涩五月天| 婷婷激情五月天小说网| 久热一区二区| 久久一区二区蜜桃| 自拍第一页| 超碰97久久国| 天天日天天舔东京热 | 四虎AV在线播放| 欧洲精品欧洲精品| 国产精品亚洲四五区在线观看| 亚洲欧美精品91| 丁香六月婷| 色官网在线| 日韩欧美亚洲一区二区三区影院| 麻豆 欧美 日韩| 日韩成人综合网| 天天爽天天爽| 99国内精品| 97 亚洲 日韩 欧美 在线| 人人天天欧洲| 18一区二区三区| 亚洲最大黄网| 日本裸体久久色噜噜| 欧美熟妇乱码在线一区| 国内精品不卡无毒99999| 欧美色偷拍| 91中文精品日韩欧美在线| 久jiu久神马影院| 97超碰色屌| 狠狠做深爱婷婷久久二区| 超碰这里有精品| 欧美九九九| 国产毛片片精品天天看视频| 妇女性内射冈站HDWWWCOM| 亚洲熟女性高潮久久久| 人人做人人妻人人夜视频| 无码又爽又硬又激情免费视频| 婷婷尹人大香蕉免费| 福利风月五月天影院| 噜噜噜亚洲精品| 日韩15p| 国产一区二区三区免费视频在性观看| japan日本高清乱xxxx| 婷婷五月天av| 操人妻逼91| 乱人乱色一区二区三区免费| 超碰97久久| 免费少妇一区二区| 五月丁香六月婷| 神马影院午夜福利久久久| 中国少妇啪啪视频| 91伊人大香蕉| 91精品国产长腿丝袜美女| 蜜臀无码视频在线观看| 黄色一级视| 妇人噜噜| 国产精品 视频| 久久久九九网站| 大香蕉欧美国产日韩高潮| 精品一级| 99综合网| 色哟哟精品1精品2| 无码137片内射在线影院| 午夜大香蕉| 2019午夜福利视频| 日韩操逼HD| 99re这里只有精品3| 日本综合色图| 一区二区三区 丝袜高跟| 日韩精品国模| 午夜欧美神马久久久久| 久久不卡一区二区| 国产熟女少妇一区| 中文字幕激情小说| 日日操天天操| 欧美男人的天堂| 无码天天操| 美女丝袜激情小说| 国产懂色精品国产av| 91欧美性| 亚洲精品视频在线| 97久操| 长长久久曰曰夜夜成人网| 久久男人| 国产在线不卡导航| 88xx成人精品视频| 97超碰亚洲| 99久久e免费热视| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 久草尤物| 欧美亚洲美少妇一区二区| 美女视频尤物网在线看| 东北操逼| 婷婷久久五月天| 色欧洲| 国产精品熟女九九九| 精品毛片av一区二区| 亚洲少妇激情一区二区三区| 日欧操屄视频| 亚洲在线a| 色www精品视频在线观看| 亚洲综合中文字幕有码| 超碰久久.com| 伊人久久国产免费观看视频| 欧美一级特黄淫片在线观看| 美女黄页网站| 国产有码一区| 凸凹视频在线观看| 国产一国产一级毛片古装| 嗯嗯啊啊好大好爽| 日日日日日| 亚洲精品三区在线观看| 揉揉揉夜夜| 999 久久久| 久草精品热视| 探花激情视频| 欧美精品99久久久**| 丝袜足交视频| 色网综合网| 四季AV综合网址| www.狠狠干.coom | 性色A∨91| 97亚洲国产| 农村妇女精品一区二区| 夜夜操天| 亚洲一欧洲中文字幕在线| 亚洲成a人v欧美综合天堂下载| 91精产一区二区三区| 少妇500双飞99| 亚洲欧美中日韩| 人人爽天天爽| 99久热| 日韩另类色图| 日韩欧美视频青青| 99色视频| 激情五月丁香五月| 激情一区二区三区在线观看| 成人老鸭窝人人在线视频| 另类图片五月天| www.色婷婷色综合| 99热在线播放| 97se综合网| 一区二区激情国产熟女| 黄色成品网站| 97伦乱| 91M一社| 国产精品久久天天干| 少妇一级婬片免费放一级a性色.| 日韩性爱免费视频在线网站| 黄片www视频免费| 97ai亚洲| 日日操免费视频| 乱伦图一区| 99在线精品视频| 开心激情站| 青草av在线| 久久露脸国产老熟女| 日美免费黄片| 激情综合五月婷婷| 欧美亚洲综合色| 国产视频一区二区在线| 亚州久久9| 欲女人妻性色av| 98福利在线视频| 欧洲精品欧洲精品| 日韩精品 欧美激情| 两女互慰AV高潮喷水在线观看| 成 人片 黄色大片| 午夜a成v人电影| 日本不卡在线二区三区| 干超碰碰熟女| 色婷婷成人| 啊啊啊好想要| 色九色久| 国产乱伦亚洲| 另类图片五月| 国产热av| 最近2018中文字幕在线高清第一页| 亚洲影院无码在线| 国产日本顶级一区二区三区| 欧美特大黄一级片片免费| 亚洲熟妇自偷自拍另欧美| 国产精品无码AV网站| 日韩黄色成人性爱| 99www.bibizy香蕉资源国产一区二区三区高清 | 黑人干亚洲| 中文字幕亚洲欧美在线不卡| 日本 欧美 亚中文字幕| 精品人妻久久久久一区二区三区| 国产成人www免费人成看片| 日韩熟女视频二区| 成人欧美一区二区三区黑人一| 另类视频在线| 青青青国产手线观看视频2| 欧美性爱视频免费一区一A| 久久久av爱| 思思热免费在线视频| 少好三P| 99久久精品无码一区二区毛片免费| 性爱动态120秒| 精品无码一区二区三区| 中日韩熟女| 欧美另类色| 老鸭窝成人免费毛片视频| 国内精品久久久久影院亚洲| 欧美91精彩| 女同女同恋久久级三级| 亚洲人妻熟妇三十三区| 人人摸人人入| 日本一二区免费| 欧美碰碰综合色| 97色碰| 亚洲交性| 丁香婷婷啪啪| 夜夜夜夜久久久久| AA特级绝黄| 97情超碰色| 在线国产一区二区av| 亚洲福利影院一区久久| 国产精品久久久久婷婷二区次| 久99视频| 无码二级三级| 91操操| 欧美日韩亚洲天堂| 亚洲丁香花色| 中欧人妻丝袜中文字幕| 大香蕉宗合网在线| 中文一区二区三区影院| 99爱久久视频频| 国产亚洲福利第一页丝袜| 久久偷拍人| 亚洲一区二区三区播放在线| 日韩在线97| 先锋色眉乱伦资源| 蜜伊人色综合97| 国产精品点击进入在线影院| 夜夜爽爽夜夜精品视频| 美女写真| 91中出在线| 香蕉在线一区二区三区| 久久久9999| 日韩国产十八禁| 日韩色| 欧美综合网站999| 亚洲综合色网| 欧美激情一区| 91激情网| 国产福利第一视频| 亚洲图片91| 特级大荫道BBwBBwBBW| 精品国产无码中文| 天综合网欧美| 超碰成人免费| A 天堂| 精品久久99| 人人干黄色| 亚洲无码com| 久9久9精品| 青春草A| 久热伊人99re| 男男H黄动漫啪啪无遮挡网站| 99老司机精品视频在线观看| 国产精品美女| www亚洲免费| 中文字幕乱码人妻二区三区| 2019男人的天堂| 78p欧美| 99精品无码| 无码免费精品高清| 青娱乐亚洲热| 变态综合色| 激情综合婷婷| 激情文学网伊人| 性爱Av免费| 欧美性爱第一区| 九九色影院| 欧美在线色| 999热日韩精品| 欧美在线大香蕉| 视频在线观看一二三区| AV电影在线播放| 91精品国产麻豆国产自产在| 久久成人国产| 日韩性爱电影一区| 3p国产欧美99热| 国产a级午夜毛片| 国产视频一区二区三区在线免费观看 | 中国东北熟女老太婆内谢| 天天天天天天天天天天干美女| 色婷婷狠狠| 欧亚不卡| 国产黄色动态精品| 成人在线永久| 肉丝中文无码高清| 久久黄黄黄| 青娱乐休闲视频在线观看| 久久东京伊人一本到鬼色| 日韩AC| 色优久久| 一区二区三区精品黑丝白丝酒店对鸡| 五月婷婷综合在线| 日韩精品一二三四| 亚洲精品一区二区三区新线路| 五月丁香久久| 九色97| 久久久工口| 欧美午夜精品久久久久久3D| 亚洲一区二区麻豆影院| 四虎免费视频| 在线岛国新天堂8| 午夜理论片在线观看免费| 中文字幕91综合| 久热久操| 高清国产精品无码| 亚洲97p| 欧美日韩人妻精品系列一区二区三区| 影音先锋日本乱伦| 久草视频在线视频在线视频在线观看 | 97色冈| 97综合激情| 91欧美丨精品丨入口| 夜夜爽爽爽| 99re国产中文字幕| 亚洲成人久久一区二区| 桃花色综合影院| 91亚洲色图| 国产白丝AV| 欧美性五月| 九九九热精品| 久草男人天堂| 青青操在线亚洲视频观看欧美在线 | 强奸乱伦麻豆| 亚州操逼图| 人妻81p| 蜜乳视频网站| 成人小说另类在线| 日本一级特级毛片视频| 99热这里都是精品| 久久亚洲日韩熟女精品| 亚洲成人AB| 尤物视频偷拍免费| 综合大香蕉美。| 夜夜夜夜爽| 日韩精品电影| 香蕉色网| 美女网站黄页| 欧美青青视频| 久久久久久少妇| 99re6国产精品99re| 久草热制服丝袜在线观看| 国产中文福利| 超碰98综合网| 国产精品久久久九九九| 人人操人人射人人干| 日韩一级二级三级免费看完整版国语版| 精品人妻一区二区免费蜜桃| 二对二中文字幕。| 国精综合一二三区影视| 佐山爱中文字幕| 四虎免费看黄| 一区二区三区色综合| 亚洲熟久久| 欧美日日人人天天| 久久久亚洲熟妇资源| 国产精品一区二区后入| 俞拍自拍| 亚洲欧洲综合| 久久久久久无码人妻中文字幕| 韩国毛片一区二区三区| 国产精品伦理| 欧美97| 先锋影音av先锋一区| 亚洲蜜乳av| 欧美视频在线视频免费va| 无码少妇精品一区二区60岁老人| 婷婷丁香五月综合| 北京专精特新企业招聘信息| 久久久久久久久久久97| 人妻在线大香蕉| 久久久成人免费av电影| 99超碰网| 中日韩免费看男女操逼大全| 激情五月天插| 中文字幕乱亚洲美女精品一区| 激情婷婷综合久久| 国产亚洲中文不卡二区| 久久99亚洲精品久久99果| 激情婷婷五月天| 麻豆黄四叶草网站| 91美女国产在线| 国产后入式在线观看| 大学生美女口爆| 亚洲性爱免费电影| h无码动漫在线观看| 天天操夜夜操| 大香蕉国产中文自拍| 国产精品欧美激在线| 欧美色爱综合| 亚洲宗合电影| 欧美综合 站| 精品人妻一区二区三区不卡断| 日韩免费中文字幕视频| 国产精品无码av| 91婷婷| 精品97久久综合| 欧美日韩人妻精品系列一区二区三区| 亚洲蜜臀精品视频久久| 欧美性xxxxx狂欢| 日韩性爱电影一区| 啪啪91| 伊人久久亚洲色欲综合网站 | 亚洲少妇在线影音| 有码专区最新中文字幕有码| 人人搞人人插人人操| 婷婷中文网| 日本精品国产视频| 午夜毛片高清免费不卡| 啊啊啊啊好爽好舒服一区二区易域| 在线观看高清AV| 日韩啪啪啪啪啪| 欧美日韩一干二干| 亚洲美女精品九九视频| 日韩精品人妻一| 日韩有码一区三区| 长久操视频| 欧美高清18A片| 91日韩在线| 99精品丰满人妻| 色综合av综合久久| 国产成人+综合亚洲+天堂| 91精品成人| 91亚洲网| 九九黄色网| 日韩精品影视| 无遮挡男女激烈动态图| 9色在线| 激情四射婷婷六月天| 亚洲第一页第二页激情| 人人摸人人干| 欧美图片色五月天| 嗯啊抽插大香蕉网页| 美女露胸露尿口| 91精品国产长腿丝袜美女| 人妻二区| 懂色AV蜜臀无码精品APP| 国产原创自拍| 日夜尻逼网| 国产一级内射无挡观看| 1区2区3区在线视频| 欧美 亚洲精品首页| 午夜乱轮操逼视频免费看| 蜜臀av在线播放一区二区三区| 丰满少妇精品一区二区| 青青操综合网| 午夜天堂精品久久| 久久久久少妇| 97视频www| 色综合V| 无码 黑人一区二区三区| 欧洲在线性爱视频| 天美国产精品| 夜夜躁狠狠躁日日躁av| 色播综合| 超碰在线综合97|