精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

線上 Redis 頻繁崩潰?這套大 key 治理方案請收好

數據庫 Redis
現在稍微大點的項目都用 Redis 集群,假設你用的是分片集群(比如 Codis、Redis Cluster),一個大 key 會被固定分配到某個分片上。想象一下,其他分片內存使用率才50%,就這個分片像吹氣球一樣漲到90%,整個集群的負載均衡瞬間失效。

兄弟們,凌晨兩點,手機突然像地震一樣狂震,我迷迷糊糊摸到床頭一看,運維群里炸了鍋:"Redis節點又掛了!內存使用率飆到99%,CPU直接打滿!" 頂著黑眼圈爬起來連服務器,剛登錄就看到熟悉的報錯:OOM killer 又把 Redis 進程干掉了。

那一刻我真想把寫代碼時隨手往 Redis 里塞大集合的同事拎過來——咱就是說,存數據能不能別跟往麻袋里裝磚頭似的,可勁兒造啊!

一、先搞明白:啥是 Redis 大 key?它憑啥能搞崩服務器?

很多新手可能還不清楚,所謂"大 key"其實分兩種情況:一種是單個 key 的值特別大(比如一個字符串類型的值超過1MB),另一種是集合類數據結構(像 hash、list、set、zset)里的元素數量超多(比如一個 zset 存了10萬+成員)。別小看這些大塊頭,它們就像藏在 Redis 里的定時炸彈,主要靠這三招搞破壞:

1. 內存分布不均勻,分片集群秒變"單腿跳"

現在稍微大點的項目都用 Redis 集群,假設你用的是分片集群(比如 Codis、Redis Cluster),一個大 key 會被固定分配到某個分片上。想象一下,其他分片內存使用率才50%,就這個分片像吹氣球一樣漲到90%,整個集群的負載均衡瞬間失效。更要命的是,當你要刪除這個大 key 時,分片節點會經歷一段漫長的"卡頓期",因為刪除操作需要釋放大量連續內存,堪比在市中心拆除一棟摩天大樓,周圍的交通都得跟著堵。

2. 網絡IO成瓶頸,批量操作直接"卡脖子"

舉個真實的例子:之前有個兄弟在項目里用 list 存用戶的歷史操作記錄,一個 key 存了50萬條數據。某天運營要導出用戶數據,直接用 LRANGE key 0 -1 撈數據,結果 Redis 所在服務器的網卡流量直接飆到峰值,應用服務器這邊等了10秒都沒拿到響應。為啥?因為 Redis 是單線程模型,處理這種大集合操作時,會把所有元素序列化后通過網絡傳輸,就像用一根水管同時給100戶人家供水,水壓自然上不去。

3. 內存碎片瘋狂增長,好好的內存變成"碎紙片"

Redis 采用jemalloc分配內存,當大 key 被頻繁刪除和寫入時,會產生大量無法利用的小碎片。比如你先存了一個10MB的大字符串,然后刪除,再存一堆1KB的小字符串,jemalloc 沒辦法把這些小碎片合并成大的連續內存,導致實際內存使用率比 INFO memory 里看到的 used_memory 高很多。曾經見過一個線上節點,used_memory 顯示8GB,但物理內存已經用了12GB,就是被碎片坑的。

二、檢測大 key:別等崩潰了才后悔,提前掃描是王道

1. 最簡單的命令:redis-cli --bigkeys

這個命令是 Redis 自帶的大 key 掃描工具,原理是對每個數據庫的不同數據類型做抽樣檢查。比如檢查 string 類型時,會隨機選一些 key 用 STRLEN 查看長度;檢查集合類型時,用 HLEN、LLEN、SCARD、ZCOUNT 統計元素數量。注意要加 -i 0.1 參數,這表示每次掃描間隔0.1秒,避免阻塞主線程。不過它有個缺點:只能告訴你每個數據類型的最大 key 是誰,沒辦法掃描所有大 key,適合做初步排查。

# 掃描所有數據庫,每隔0.1秒掃描一次
redis-cli -h 127.0.0.1 -p 6379 --bigkeys -i 0.1

2. 更精準的方案:自己寫掃描工具(附Python代碼)

如果需要全量掃描,就得用 SCAN 命令代替 KEYS *,因為 KEYS 會阻塞主線程,在生產環境用就是"自殺行為"。下面這段 Python 代碼可以掃描指定前綴的大 key,支持設置字符串長度閾值和集合元素數量閾值:

import redis
def scan_big_keys(redis_client, prefix, str_threshold=1024*1024, collection_threshold=10000):
   big_keys = []
   cursor = '0'
   while cursor != 0:
       cursor, keys = redis_client.scan(cursor=cursor, match=prefix + '*')
       for key in keys:
           type_ = redis_client.type(key)
           if type_ == 'string':
               length = redis_client.strlen(key)
               if length > str_threshold:
                   big_keys.append((key, 'string', length))
           elif type_ in ['hash', 'list', 'set', 'zset']:
               count = 0
               if type_ == 'hash':
                   count = redis_client.hlen(key)
               elif type_ == 'list':
                   count = redis_client.llen(key)
               elif type_ == 'set':
                   count = redis_client.scard(key)
               elif type_ == 'zset':
                   count = redis_client.zcard(key)
               if count > collection_threshold:
                   big_keys.append((key, type_, count))
   return big_keys
# 使用示例
redis_client = redis.Redis(host='localhost', port=6379, db=0)
big_keys = scan_big_keys(redis_client, 'user:')
for key, type_, size in big_keys:
   print(f"大key: {key}, 類型: {type_}, 大小: {size}")

3. 可視化工具輔助:讓大 key 一目了然

如果覺得命令行太麻煩,可以用 RedisInsight(官方可視化工具)或者開源的 RedisDesktopManager,這些工具都有大 key 掃描功能,能生成直觀的圖表。比如 RedisInsight 的"Memory Analysis"模塊,能按數據類型展示內存占用分布,點擊某個類型就能看到具體的大 key 列表,適合團隊協作時給非技術同學演示。

三、治理大 key:分場景出招,不同類型有不同解法

(一)字符串類型大 key:能壓縮就壓縮,能拆分就拆分

案例:用戶詳情存成大 JSON

某電商項目把用戶詳情(包括收貨地址、訂單歷史、會員信息)存成一個大 JSON,單個 key 大小超過2MB。解決方案分兩步:

  • 數據壓縮:先用 gzip 壓縮 JSON 字符串,壓縮后大小能降到500KB左右。Redis 提供了 COMPRESS 和 DECOMPRESS 命令(需要開啟 redis-module-recompress 模塊),不過更推薦在應用層處理,比如 Java 里用 GZIPOutputStream 和 GZIPInputStream。
// 壓縮數據
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
GZIPOutputStream gzipOutputStream = new GZIPOutputStream(byteArrayOutputStream);
gzipOutputStream.write(userJson.getBytes());
gzipOutputStream.close();
byte[] compressedData = byteArrayOutputStream.toByteArray();
redisTemplate.opsForValue().set("user:123", compressedData);

// 解壓縮數據
byte[] data = redisTemplate.opsForValue().get("user:123");
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(data);
GZIPInputStream gzipInputStream = new GZIPInputStream(byteArrayInputStream);
BufferedReader reader = new BufferedReader(new InputStreamReader(gzipInputStream));
StringBuilder decompressedJson = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
    decompressedJson.append(line);
}
  • 按需拆分:把常用字段(比如用戶名、頭像)和不常用字段(比如三年前的訂單)分開存儲。比如用 user:123:base 存基礎信息,user:123:order:2023 存2023年的訂單,查詢時用 MGET 批量獲取,雖然多了幾個 key,但每次獲取的數據量小了,網絡傳輸速度快了很多。

避坑指南:別用 APPEND 命令往大字符串里追加數據

曾經有個項目用 APPEND 記錄用戶操作日志,每天往一個 key 里追加幾MB數據,一個月后這個 key 變成了50MB。APPEND 操作在字符串底層實現是動態擴展數組,當數組需要擴容時,會申請一塊更大的內存,把舊數據復制過去,再追加新數據。50MB的字符串每次擴容都要復制大量數據,CPU使用率直接飆升,后來改成按天拆分key,問題立刻解決。

(二)集合類型大 key:分桶存儲,別把雞蛋放一個籃子里

案例:千萬級用戶的標簽集合

某社交APP用 set 存儲每個用戶的興趣標簽,個別活躍用戶的標簽數量超過20萬。直接遍歷這個 set 時,Redis 主線程被阻塞了好幾秒。解決方案是"分桶+哈希取模":

  • 確定桶的數量:根據最大元素數量決定,比如每個桶最多存1萬條數據,20萬條就分20個桶。
  • 計算桶編號:用 CRC32 算法對用戶ID取模,保證同一個用戶的標簽分布在同一個桶里(如果需要保證順序,用 hash_mod 時要考慮一致性)。
  • 修改數據結構:把 set user:123:tags 改成 set user:123:tags:0 到 set user:123:tags:19,每個桶最多1萬條數據。
// 計算桶編號
long userId = 123;
int bucketCount = 20;
int bucketId = (int) (userId % bucketCount);
String bucketKey = "user:" + userId + ":tags:" + bucketId;
// 添加標簽
redisTemplate.opsForSet().add(bucketKey, "tag1", "tag2");
// 遍歷所有桶
for (int i = 0; i < bucketCount; i++) {
   String key = "user:" + userId + ":tags:" + i;
   Set<String> tags = redisTemplate.opsForSet().members(key);
   // 處理每個桶的數據
}

進階操作:用分片集群的路由規則優化

如果用的是 Redis Cluster,大 key 會被分配到固定分片上,分桶后可以讓不同的桶分布在不同分片,比如每個桶的 key 加上分片標識(user:123:tags:0:shard1),不過這種方法需要和集群架構深度結合,建議在架構設計階段就考慮大 key 問題。

(三)業務層面優化:從源頭減少大 key 的產生

  • 分頁處理:比如用戶的消息列表,別把所有歷史消息都存到一個 list 里,改成按頁存儲,用 list:user:123:page:1、list:user:123:page:2,每次只取當前頁的數據。
  • 時效性控制:給大 key 設置合理的過期時間,比如臨時緩存的大集合,用完就自動刪除,別讓它一直占著內存。
  • 數據歸檔:像電商的歷史訂單,超過半年的可以歸檔到數據庫或文件存儲,Redis 里只存最近三個月的常用數據。

四、實戰案例:從崩潰到穩定,我們是怎么搞定大 key 的

背景:某直播平臺的禮物排行榜

直播間的禮物排行榜用 zset 存儲,每個直播間一個 key,里面存了所有送禮用戶的分數,個別熱門直播間的 zset 成員超過50萬。每天晚上高峰期,存儲排行榜的 Redis 節點頻繁觸發 OOM,導致整個集群不可用。

治理過程:

  1. 第一步:定位罪魁禍首 用前面提到的 Python 掃描工具,發現 room:123:gifts 這個 zset 有67萬成員,ZRANGE 操作平均耗時200ms,遠超 Redis 單次操作1ms的正常水平。
  2. 第二步:分桶+冷熱分離
  • 按送禮時間分桶:最近1小時的實時數據存在 room:123:gifts:hot,1-24小時的數據存在 room:123:gifts:warm,超過24小時的歸檔到數據庫。
  • 每個桶限制成員數量:hot桶最多存1萬條(只保留最新的1萬條實時數據),warm桶按小時分桶(room:123:gifts:warm:2025041010 表示2025年4月10日10點的數據)。
  1. 第三步:優化查詢邏輯 原來的業務直接查整個 zset 取Top100,現在改成先查 hot 桶和最近24個 warm 桶,合并后再取Top100。雖然多了幾次 ZUNIONSTORE 操作,但每個 zset 的成員數量都控制在1萬以內,操作耗時降到了10ms以下。
  2. 第四步:監控與預警 用 Prometheus + Grafana 監控每個 zset 的成員數量,設置預警:當單個 zset 成員超過8000時觸發報警,同時監控內存碎片率(mem_fragmentation_ratio),當超過1.5時自動觸發大 key 掃描。

治理效果:

  • 內存使用率從95%降到60%,OOM 再也沒出現過。
  • CPU 負載從平均80%降到20%,因為處理小集合的速度快了很多。
  • 業務查詢延遲從200ms降到15ms,用戶刷新禮物榜再也不卡頓了。

五、避坑指南:這些大 key 相關的坑,千萬別踩!

1. 別迷信"大 key 一定是壞事"

有些場景下,合理的大 key 反而更高效。比如存儲一個1MB的圖片二進制數據,雖然是大 key,但比拆分成多個小 key 更節省內存(每個 key 本身有元數據開銷,Redis 中每個 key 大約占1KB內存)。所以治理大 key 要結合業務場景,不能一刀切。

2. 批量操作時注意"管道"的使用

用 pipeline 批量處理小 key 沒問題,但處理大集合時別濫用管道。比如用管道執行100次 HGETALL 一個有10萬字段的 hash,會導致客戶端內存飆升,因為所有結果會一次性返回。正確的做法是分批次處理,每次處理1000個字段,或者用 HSCAN 漸進式掃描。

3. 集群遷移時的大 key 陷阱

當需要給 Redis 集群擴容時,大 key 的遷移會導致源節點和目標節點之間產生大量網絡流量。比如一個10MB的大 key 遷移,需要先在源節點序列化,通過網絡傳輸,再在目標節點反序列化,這個過程可能會阻塞兩個節點的主線程。建議在低峰期遷移,并且對大 key 單獨處理(比如先刪除,遷移后再重新生成)。

4. 監控要關注這幾個關鍵指標

  • used_memory:超過物理內存80%就該警惕了。
  • mem_fragmentation_ratio:大于1.5說明內存碎片太多,需要清理或重啟(僅單節點有效,集群節點重啟要謹慎)。
  • blocked_clients:如果這個值經常大于0,說明有慢操作阻塞主線程,很可能是處理大 key 導致的。

六、總結:防患于未然,比事后救火更重要

回顧這次治理經歷,最大的感悟是:大 key 問題就像房間里的大象,剛開始覺得"存幾個大集合沒關系",等到出問題時已經積重難返。

最好的辦法是在項目初期就建立規范:

  1. 開發階段:設計數據結構時預估元素數量,超過1萬的集合類數據強制分桶。
  2. 測試階段:用壓測工具模擬大 key 場景,比如用 redis-benchmark 測試 LRANGE 10萬條數據的耗時。
  3. 上線階段:部署自動掃描腳本,每天凌晨掃描大 key,發現異常及時報警。
  4. 迭代階段:每次上線新功能,檢查是否引入了潛在的大 key(比如新增的集合類存儲)。 

希望這篇文章能讓你少走彎路,下次再遇到 Redis 崩潰,記得先查大 key——相信我,十有八九是它在搞事情。 

責任編輯:武曉燕 來源: 石杉的架構筆記
相關推薦

2021-07-08 10:04:36

人工智能AI主管

2022-11-03 08:56:43

RediskeyBitmap

2024-12-02 01:16:53

2023-05-03 20:53:48

2018-05-18 09:18:00

數據分析報告數據收集

2020-02-10 16:07:42

工具包

2024-05-23 07:59:42

RedisKey性能

2021-05-13 23:39:19

勒索軟件攻擊數據泄露

2023-12-13 09:08:26

CPU性能分析Linux

2020-05-26 13:45:46

Python函數字符串

2025-05-28 03:10:00

2024-05-29 12:47:27

2023-02-10 18:32:21

項目管理實踐

2025-05-07 09:32:00

2023-07-28 08:08:09

大淘寶數據模型數據治理

2022-06-20 15:19:51

前端監控方案

2022-01-17 18:21:09

數據庫社交引流

2020-07-02 09:55:32

運維架構技術
點贊
收藏

51CTO技術棧公眾號

日韩电影一区二区三区| 人体久久天天| 亚洲欧美二区三区| 97碰碰视频| 成人免费视频毛片| 青青一区二区三区| 欧美不卡一区二区| 粗暴91大变态调教| av香蕉成人| 粉嫩绯色av一区二区在线观看| 欧美影院在线播放| 黄色片子在线观看| 亚洲婷婷丁香| 欧美一级午夜免费电影| 青青在线视频观看| 91高清在线观看视频| 99re这里只有精品首页| 国产视频福利一区| 精品人妻无码一区二区性色| 国产韩日影视精品| 亚洲精品之草原avav久久| 下面一进一出好爽视频| 天堂久久午夜av| 性做久久久久久免费观看欧美| 新呦u视频一区二区| 色网站免费观看| 精品一区二区三区在线播放视频| 欧美伊久线香蕉线新在线| 麻豆视频在线免费看| 国产欧美日韩在线一区二区 | 久久精品视频在线| 欧美老熟妇乱大交xxxxx| 中文字幕一区日韩精品| 欧美精品xxxxbbbb| 一区二区成人网| 深夜成人影院| 欧美性xxxxx极品| 免费av手机在线观看| av网站网址在线观看| 一区二区中文字幕在线| 亚洲.欧美.日本.国产综合在线| 婷婷色在线观看| 成人动漫在线一区| 久久婷婷综合激情| 91成人看片片| 国产aaa一级片| 大桥未久在线视频| 亚洲综合成人在线视频| ijzzijzzij亚洲大全| 亚洲欧美视频一区二区| 久久久精品欧美丰满| 蜜桃传媒视频第一区入口在线看| 色欲av永久无码精品无码蜜桃| 国产成人精品综合在线观看| 亚洲一区二区三区成人在线视频精品| 中文字幕你懂的| 日韩va亚洲va欧美va久久| 日本国产一区二区三区| 国产免费av一区| 亚洲女同同性videoxma| 欧美一区二区三区图| 日本熟女毛茸茸| 久久久久久色| 国产精品美女视频网站| 中文字幕日本人妻久久久免费 | 精品人妻一区二区三区蜜桃| 国产福利精品导航| 成人欧美一区二区三区视频| 色婷婷视频在线| 久久影视一区二区| 亚洲国产午夜伦理片大全在线观看网站 | 久久91精品国产| 久青草免费视频| 亚洲一区日韩| 国产精品福利片| 亚洲自拍偷拍另类| 国产精品综合在线视频| 国产麻豆一区二区三区在线观看| 日本大臀精品| 亚洲欧洲性图库| 黄色国产一级视频| 刘亦菲一区二区三区免费看| 欧美日韩国产综合草草| wwwxxxx在线观看| 台湾佬综合网| 日韩中文字幕在线播放| 久久久精品91| 日韩成人免费看| 操一操视频一区| 精品推荐蜜桃传媒| 亚洲欧美日韩国产综合在线| 亚洲熟妇国产熟妇肥婆| 99久久久国产精品免费调教网站 | 一级黄色在线播放| www.国产精品一区| 国产午夜精品视频免费不卡69堂| 欧洲美女女同性互添| 亚洲免费成人| 国产日韩av在线播放| 色综合免费视频| 国产精品第四页| 欧美韩国日本在线| 日韩视频在线直播| 一区二区三区日韩在线| 精品无码久久久久久久久| 日韩综合在线视频| 国内精品国语自产拍在线观看| 在线免费黄色| 欧美日韩在线免费| 无套白嫩进入乌克兰美女| 国产成人短视频在线观看| 欧美高清视频在线| 亚洲午夜激情视频| 久久精品一区蜜桃臀影院| 欧美做暖暖视频| 日韩深夜福利网站| 国产视频综合在线| 久久精品99久久久久久| 麻豆成人在线观看| 日本不卡一区| 热三久草你在线| 日韩欧美视频一区| fc2ppv在线播放| 日韩精品电影在线| 久久天天狠狠| 91豆花视频在线播放| 日韩午夜激情电影| www.xxxx日本| 麻豆久久久久久久| 亚洲国产日韩欧美| 电影一区二区| 亚洲天堂男人的天堂| 天堂中文字幕在线观看| av在线播放不卡| 黄色一级片国产| 欧美2区3区4区| zzjj国产精品一区二区| 中文字幕在线播放av| 久久久www成人免费无遮挡大片| 精品少妇人妻av免费久久洗澡| 中文字幕一区二区三区日韩精品| 美日韩在线视频| 国产av一区二区三区精品| 亚洲欧洲成人精品av97| 久久久久久久久久久久久久久国产| 精品国产不卡| 国产精品av在线播放| 国产一二三区在线视频| 91福利在线播放| 精品人妻一区二区三区四区| 日韩成人伦理电影在线观看| 五月天久久综合网| 精品自拍视频| 久久精品91久久久久久再现| 国产精品视频一区二区三区,| 亚洲视频免费看| 欧美专区第二页| 激情六月综合| 久久精品国产一区二区三区日韩| 色是在线视频| 一个人www欧美| 亚洲天堂网在线观看视频| 中文字幕一区在线观看视频| 亚洲精品成人在线播放| 你懂的视频一区二区| 国产一区再线| 国精产品一区二区三区有限公司| www亚洲精品| 国产成a人亚洲精v品无码| 亚洲国产视频直播| 最新中文字幕视频| 秋霞午夜av一区二区三区| 在线视频一区观看| 综合激情五月婷婷| 欧美一级片在线播放| а√天堂中文在线资源bt在线| 欧美日本乱大交xxxxx| caoporn91| 99久久99久久免费精品蜜臀| 在线免费视频a| 女生裸体视频一区二区三区| 精品一区二区三区国产| 日韩在线观看不卡| 久久99久久亚洲国产| 亚洲欧美一区二区三| 欧美日韩免费观看一区二区三区| 久草国产在线视频| 久久久久久夜精品精品免费| 中文国产在线观看| 免费亚洲一区| 欧洲美女和动交zoz0z| 台湾色综合娱乐中文网| 成人情趣片在线观看免费| av中文字幕在线看| 视频直播国产精品| 无码精品人妻一区二区| 7777精品伊人久久久大香线蕉最新版| 国产精品成人av久久| 国产精品视频看| 亚洲の无码国产の无码步美| 美女在线视频一区| 日本a在线免费观看| 999国产精品视频| 就去色蜜桃综合| 免费精品一区| 国产精品网站大全| 极品av在线| 欧美成人精品在线观看| 韩日视频在线| 日韩电影视频免费| 国产黄色av片| 欧美日本不卡视频| 亚洲欧美一二三区| 婷婷六月综合亚洲| 波多野结衣亚洲色图| 欧美国产丝袜视频| 蜜臀av一区二区三区有限公司| 国产一区不卡在线| 亚洲欧美国产中文| 日韩电影在线一区二区| 女人喷潮完整视频| 激情偷拍久久| 白白操在线视频| 婷婷色综合网| 曰韩不卡视频| 成人免费在线播放| 欧美中文娱乐网| 性欧美lx╳lx╳| 国产日韩欧美二区| 成人免费在线电影网| 91gao视频| 精品一区二区三区视频在线播放 | 免费日韩中文字幕| 亚洲一区成人| 3d动漫一区二区三区| 韩国自拍一区| 美女黄色免费看| 国产精品啊啊啊| 成年在线观看视频| 精品动漫av| 岛国大片在线播放| 精品9999| 欧美久久久久久久久久久久久| 国产主播一区| 久久国产精品网| 亚洲视频精品| www.好吊操| 亚洲深夜av| www.com毛片| 美女网站久久| 91国产精品视频在线观看| 老司机免费视频久久| 在线免费观看视频黄| 看国产成人h片视频| 婷婷中文字幕在线观看| 国产精品影视在线观看| 乳色吐息在线观看| 高清视频一区二区| 亚洲天堂资源在线| 久久久久国产精品人| 91在线无精精品白丝| 亚洲欧洲日韩在线| 久久精品99国产精| 欧美性生交大片免网| 午夜一区二区三区四区| 欧美精品第1页| а√中文在线资源库| 日韩av在线免费播放| 久草在线免费福利资源| 上原亚衣av一区二区三区| 羞羞视频在线观看不卡| 国内精品400部情侣激情| 色婷婷综合久久久中字幕精品久久| 国产精品日韩专区| 亚洲伊人影院| 欧美精品免费观看二区| 99久久综合| 成年人看的毛片| 日韩电影在线免费看| 中文在线字幕观看| 国产亚洲精品资源在线26u| 九九热视频在线免费观看| 午夜电影久久久| 国产又粗又大又黄| 欧美精品一区二区久久婷婷| 国产高清一区在线观看| 欧美成人免费一级人片100| 老色鬼在线视频| 91免费欧美精品| 亚洲a级精品| 日本三级福利片| 亚洲综合国产激情另类一区| 善良的小姨在线| 国产亚洲欧美日韩俺去了| 久草视频在线资源站| 91极品美女在线| 亚洲男人第一天堂| 一区二区国产精品视频| gratisvideos另类灌满| 国产综合色香蕉精品| 女仆av观看一区| 日本丰满少妇黄大片在线观看| 美女视频一区免费观看| 国内精品免费视频| 亚洲欧美在线视频| 欧美日韩一级黄色片| 精品精品国产高清一毛片一天堂| 亚洲成人影院麻豆| 97在线看免费观看视频在线观看| 北岛玲精品视频在线观看| 欧美一级片免费观看| 亚洲午夜久久久久久尤物| 九九九九九国产| 久久久99免费| 精品国产免费观看| 精品少妇一区二区三区日产乱码| 素人av在线| 国产国语videosex另类| 日本韩国欧美超级黄在线观看| 国产黑人绿帽在线第一区| 久久久久久久久久成人| 日本特黄久久久高潮| 鲁大师私人影院在线观看| 一区二区三区资源| 在线免费观看一区二区| 亚洲精品综合精品自拍| 97超碰在线免费| 国产女人水真多18毛片18精品| 中文字幕乱码亚洲无线精品一区| 欧美婷婷精品激情| 国产亚洲va综合人人澡精品| 日韩久久中文字幕| 亚洲精品久久久久久久久| 丰满诱人av在线播放| 91久久国产自产拍夜夜嗨| 91精品蜜臀一区二区三区在线| 九九热在线免费| 国产人伦精品一区二区| 久久久精品毛片| 国产亚洲精品久久| 日韩精品麻豆| 亚洲精品成人a8198a| 蜜桃久久av一区| 成年人免费视频播放| 欧美乱妇20p| 免费在线观看黄| 成人在线中文字幕| 久久精品影视| 四川一级毛毛片| 亚洲国产视频a| 天天操天天操天天| 日本高清视频一区| 欧美伦理在线视频| 在线观看av网页| 1024国产精品| 精品国产av一区二区| 久久久久久久国产| 久久亚洲道色| 无码无遮挡又大又爽又黄的视频| 国产调教视频一区| 一级全黄少妇性色生活片| 美女久久久久久久久久久| www.神马久久| 欧美极品欧美精品欧美| 久久精品亚洲乱码伦伦中文 | 欧美一区二区在线不卡| 最新超碰在线| 久久人人爽爽人人爽人人片av| 日一区二区三区| 欧美激情精品久久久久久免费| 日韩精品一区国产麻豆| 国产伦久视频在线观看| 日本一区二区三区视频免费看| 另类调教123区| 久草视频中文在线| 亚洲欧美日韩视频一区| 日本一区二区中文字幕| 中文字幕人妻熟女人妻洋洋| wwww国产精品欧美| 91成品人影院| 久久久久久中文| 欧美在线色图| 国产精九九网站漫画| 一本大道久久a久久综合| 黄视频网站在线看| 久久国产欧美精品| 久久机这里只有精品| 久久精品亚洲无码| 在线视频欧美日韩| 成人直播在线观看| 艹b视频在线观看| 亚洲va韩国va欧美va精品| av网站在线播放| 国产免费一区二区三区| 黄色日韩网站视频| 日本特级黄色片| 久99九色视频在线观看| 不卡中文字幕| 影音先锋人妻啪啪av资源网站| 宅男噜噜噜66一区二区66|