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

Redis中五大數(shù)據(jù)結構的底層實現(xiàn)

運維 數(shù)據(jù)庫運維 Redis
下面讓我們來詳細介紹一下redis中五大數(shù)據(jù)結構的底層實現(xiàn)。讓我們一起來看看吧。

一、概述

Redis是一個開源的使用ANSI C語言編寫、遵守BSD協(xié)議、支持網絡、可基于內存亦可持久化的日志型、Key-Value數(shù)據(jù)庫,與Memcached類似,卻優(yōu)于Memcached的一個高性能的key-value數(shù)據(jù)庫。下面讓我們來詳細介紹一下redis中五大數(shù)據(jù)結構的底層實現(xiàn)。

二、簡單動態(tài)字符串

1、概述

Redis是一個開源的使用ANSI C語言編寫的key-value 數(shù)據(jù)庫,我們可能會較為主觀的認為 Redis 中的字符串就是采用了C語言中的傳統(tǒng)字符串表示,但其實不然,Redis沒有直接使用C語言傳統(tǒng)的字符串表示,而是自己構建了一種名為簡單動態(tài)字符串(simple dynamic string SDS)的抽象類型,并將SDS用作Redis的默認字符串表示:redis>SET msg "hello world"

SDS 定義: 

  1. struct sdshdr{  
  2.      //記錄buf數(shù)組中已使用字節(jié)的數(shù)量  
  3.      //等于 SDS 保存字符串的長度  
  4.      int len;  
  5.      //記錄 buf 數(shù)組中未使用字節(jié)的數(shù)量  
  6.      int free;  
  7.      //字節(jié)數(shù)組,用于保存字符串  
  8.      char buf[];  

圖片來源:《Redis設計與實現(xiàn)》

我們看上面對于 SDS 數(shù)據(jù)類型的定義:

  •  len 保存了SDS保存字符串的長度
  •  buf[] 數(shù)組用來保存字符串的每個元素
  •  free j記錄了 buf 數(shù)組中未使用的字節(jié)數(shù)量  

2、與C語言相比較 

一般來說,SDS 除了保存數(shù)據(jù)庫中的字符串值以外,SDS 還可以作為緩沖區(qū)(buffer):包括 AOF 模塊中的AOF緩沖區(qū)以及客戶端狀態(tài)中的輸入緩沖區(qū)。后面在介紹Redis的持久化時會進行介紹。

三、鏈表

1、概述

鏈表提供了高效的節(jié)點重排能力,以及順序性的節(jié)點訪問方式,并且可以通過增刪節(jié)點來靈活地調整鏈表的長度。

鏈表在Redis 中的應用非常廣泛,比如列表鍵的底層實現(xiàn)之一就是鏈表。當一個列表鍵包含了數(shù)量較多的元素,又或者列表中包含的元素都是比較長的字符串時,Redis 就會使用鏈表作為列表鍵的底層實現(xiàn)。

每個鏈表節(jié)點使用一個listNode結構表示(adlist.h/listNode): 

  1. typedef  struct listNode{  
  2.        //前置節(jié)點  
  3.        struct listNode *prev;  
  4.        //后置節(jié)點  
  5.        struct listNode *next;  
  6.        //節(jié)點的值  
  7.        void *value;    
  8. }listNode 

鏈表的數(shù)據(jù)結構: 

  1. typedef struct list{  
  2.       //表頭節(jié)點  
  3.      listNode *head;  
  4.      //表尾節(jié)點  
  5.      listNode *tail;  
  6.      //鏈表所包含的節(jié)點數(shù)量  
  7.      unsigned long len;  
  8.      //節(jié)點值復制函數(shù)  
  9.      void (*free) (void *ptr);  
  10.      //節(jié)點值釋放函數(shù)  
  11.      void (*free) (void *ptr);  
  12.      //節(jié)點值對比函數(shù)  
  13.      int (*match) (void *ptr,void *key);  
  14. }list; 

組成結構圖

2、Redis鏈表特性

  •  雙端:鏈表具有前置節(jié)點和后置節(jié)點的引用,獲取這兩個節(jié)點時間復雜度都為O(1)。
  •  無環(huán):表頭節(jié)點的 prev 指針和表尾節(jié)點的 next 指針都指向 NULL,對鏈表的訪問都是以 NULL 結束。 
  •  帶鏈表長度計數(shù)器:通過 len 屬性獲取鏈表長度的時間復雜度為 O(1)。
  •  多態(tài):鏈表節(jié)點使用 void* 指針來保存節(jié)點值,可以保存各種不同類型的值。

四、字典

1、概述

字典又稱為符號表或者關聯(lián)數(shù)組、或映射(map),是一種用于保存鍵值對的抽象數(shù)據(jù)結構。字典中的每一個鍵 key 都是唯一的,通過 key 可以對值來進行查找或修改。C 語言中沒有內置這種數(shù)據(jù)結構的實現(xiàn),所以字典依然是 Redis自己構建的。

哈希表結構定義: 

  1. typedef struct dictht{  
  2.      //哈希表數(shù)組  
  3.      dictEntry **table;  
  4.      //哈希表大小  
  5.      unsigned long size;  
  6.      //哈希表大小掩碼,用于計算索引值  
  7.      //總是等于 size-1  
  8.      unsigned long sizemask;  
  9.      //該哈希表已有節(jié)點的數(shù)量  
  10.      unsigned long used;  
  11. }dictht 

哈希表是由數(shù)組 table 組成,table 中每個元素都是指向 dict.h/dictEntry 結構,dictEntry 結構定義如下: 

  1. typedef struct dictEntry{  
  2.      //鍵  
  3.      void *key;  
  4.      //值  
  5.      union{  
  6.           void *val;  
  7.           uint64_tu64;  
  8.           int64_ts64;  
  9.      }v;  
  10.      //指向下一個哈希表節(jié)點,形成鏈表  
  11.      struct dictEntry *next; 
  12. }dictEntry 

key 用來保存鍵,val 屬性用來保存值,值可以是一個指針,也可以是uint64_t整數(shù),也可以是int64_t整數(shù)。

注意這里還有一個指向下一個哈希表節(jié)點的指針,我們知道哈希表最大的問題是存在哈希沖突,如何解決哈希沖突,有開放地址法和鏈地址法。這里采用的便是鏈地址法,通過next這個指針可以將多個哈希值相同的鍵值對連接在一起,用來解決哈希沖突。

五、跳躍表

1、概述

跳躍表(skiplist)是一種有序數(shù)據(jù)結構,它通過在每個節(jié)點中維持多個指向其他節(jié)點的指針,從而達到快速訪問節(jié)點的目的。跳躍表是一種隨機化的數(shù)據(jù),跳躍表以有序的方式在層次化的鏈表中保存元素,效率和平衡樹媲美 ——查找、刪除、添加等操作都可以在對數(shù)期望時間下完成,并且比起平衡樹來說,跳躍表的實現(xiàn)要簡單直觀得多。

Redis 只在兩個地方用到了跳躍表,一個是實現(xiàn)有序集合鍵,另外一個是在集群節(jié)點中用作內部數(shù)據(jù)結構。

Redis中跳躍表節(jié)點定義如下: 

  1. typedef struct zskiplistNode {  
  2.      //層  
  3.      struct zskiplistLevel{  
  4.            //前進指針  
  5.            struct zskiplistNode *forward;  
  6.            //跨度  
  7.            unsigned int span;  
  8.      }level[];  
  9.      //后退指針  
  10.      struct zskiplistNode *backward;  
  11.      //分值  
  12.      double score;  
  13.      //成員對象  
  14.      robj *obj;  
  15. } zskiplistNode 

多個跳躍表節(jié)點構成一個跳躍表: 

  1. typedef struct zskiplist{  
  2.      //表頭節(jié)點和表尾節(jié)點  
  3.      structz skiplistNode *header, *tail;  
  4.      //表中節(jié)點的數(shù)量  
  5.      unsigned long length;  
  6.      //表中層數(shù)最大的節(jié)點的層數(shù)  
  7.      int level;  
  8. }zskiplist; 
  •  header和tail指針分別指向跳躍表的表頭和表尾節(jié)點;
  •  length屬性記錄節(jié)點的數(shù)量;
  •  level屬性記錄層數(shù)最高的幾點的層數(shù)量;
  •  下圖分別展示了完整的跳躍表和單個節(jié)點的詳細結構圖:

2、特性

跳表具有如下性質:

  •  由很多層結構組成
  •  每一層都是一個有序的鏈表
  •  最底層(Level 1)的鏈表包含所有元素
  •  如果一個元素出現(xiàn)在 Level i 的鏈表中,則它在 Level i 之下的鏈表也都會出現(xiàn)。
  •  每個節(jié)點包含兩個指針,一個指向同一鏈表中的下一個元素,一個指向下面一層的元素。

六、整數(shù)集合

1、概述

《Redis 設計與實現(xiàn)》 中這樣定義整數(shù)集合:“整數(shù)集合是集合建的底層實現(xiàn)之一,當一個集合中只包含整數(shù),且這個集合中的元素數(shù)量不多時,redis就會使用整數(shù)集合intset作為集合的底層實現(xiàn)。”

我們可以這樣理解整數(shù)集合,他其實就是一個特殊的集合,里面存儲的數(shù)據(jù)只能夠是整數(shù),并且數(shù)據(jù)量不能過大。 

  1. typedef struct intset{  
  2.      //編碼方式  
  3.      uint32_t encoding;  
  4.      //集合包含的元素數(shù)量  
  5.      uint32_t length;  
  6.      //保存元素的數(shù)組  
  7.      int8_t contents[];  
  8. }intset; 

我們觀察一下一個完成的整數(shù)集合結構圖:   

  • encoding:用于定義整數(shù)集合的編碼方式
  • length:用于記錄整數(shù)集合中變量的數(shù)量
  • contents:用于保存元素的數(shù)組,雖然我們在數(shù)據(jù)結構圖中看到,intset將數(shù)組定義為int8_t,但實際上數(shù)組保存的元素類型取決于encoding

2、特性

  •  整數(shù)集合是集合建的底層實現(xiàn)之一
  •  整數(shù)集合的底層實現(xiàn)為數(shù)組,這個數(shù)組以有序,無重復的范式保存集合元素,在有需要時,程序會根據(jù)新添加的元素類型改變這個數(shù)組的類型
  •  升級操作為整數(shù)集合帶來了操作上的靈活性,并且盡可能地節(jié)約了內存2

    整數(shù)集合只支持升級操作,不支持降級操作

七、壓縮列表

1、概述

壓縮列表是列表鍵和哈希鍵的底層實現(xiàn)之一。當一個列表鍵只包含少量列表項,并且每個列表項要么就是小整數(shù),要么就是長度比較短的字符串,那么Redis 就會使用壓縮列表來做列表鍵的底層實現(xiàn)。

一個壓縮列表的組成如下:  

  •  zlbytes:用于記錄整個壓縮列表占用的內存字節(jié)數(shù)
  •  zltail:記錄要列表尾節(jié)點距離壓縮列表的起始地址有多少字節(jié)
  •  zllen:記錄了壓縮列表包含的節(jié)點數(shù)量
  •  entryX:要說列表包含的各個節(jié)點
  •  zlend:用于標記壓縮列表的末端

2、特性

  •  壓縮列表是一種為了節(jié)約內存而開發(fā)的順序型數(shù)據(jù)結構
  •  壓縮列表被用作列表鍵和哈希鍵的底層實現(xiàn)之一
  •  壓縮列表可以包含多個節(jié)點,每個節(jié)點可以保存一個字節(jié)數(shù)組或者整數(shù)值
  •  添加新節(jié)點到壓縮列表,可能會引發(fā)連鎖更新操作。 

 

責任編輯:龐桂玉 來源: DBAplus社群
相關推薦

2023-10-18 15:17:24

Redis數(shù)據(jù)結構Java

2012-08-13 14:27:31

大數(shù)據(jù)

2017-01-15 10:56:57

大數(shù)據(jù)非結構化過期

2021-09-08 17:17:43

大數(shù)據(jù)智慧城市大數(shù)據(jù)應用

2019-06-21 15:20:05

Redis數(shù)據(jù)結構數(shù)據(jù)庫

2013-01-10 10:30:32

大數(shù)據(jù)預測Hadoop

2015-10-20 09:42:36

醫(yī)療大數(shù)據(jù)應用

2020-11-04 07:34:02

Redis數(shù)據(jù)類型

2022-03-14 09:46:10

Hadoop大數(shù)據(jù)

2019-10-29 08:59:16

Redis底層數(shù)據(jù)

2025-01-15 12:20:41

2025-01-14 08:00:00

RedisList數(shù)據(jù)結構

2022-08-08 10:20:19

數(shù)據(jù)安全首席信息安全官

2015-08-26 10:46:16

大數(shù)據(jù)

2019-05-27 23:21:47

大數(shù)據(jù)云遷移企業(yè)

2019-06-12 22:51:57

Redis軟件開發(fā)

2012-02-15 09:29:58

大數(shù)據(jù)IT

2019-09-27 08:53:47

Redis數(shù)據(jù)C語言

2019-04-17 15:35:37

Redis數(shù)據(jù)庫數(shù)據(jù)結構

2024-05-28 11:44:54

Redis數(shù)據(jù)結構數(shù)據(jù)庫
點贊
收藏

51CTO技術棧公眾號

欧美日韩123区| 99久久久久久久| 亚州精品视频| 在线国产电影不卡| 夜夜爽www精品| 国产农村妇女毛片精品久久| 亚洲精品日韩久久| 欧美激情在线一区二区| 成人在线观看视频网站| 久久综合亚洲色hezyo国产| 日韩成人午夜| 69p69国产精品| 久久成人免费观看| 日本激情视频在线观看| 丁香婷婷综合网| 国产精品扒开腿做爽爽爽的视频| 精品国产视频一区二区三区| 九色porny自拍视频在线播放| 精品一区二区三区久久久| 欧美风情在线观看| 人妻av无码一区二区三区| 日韩免费高清视频网站| 欧美最猛黑人xxxxx猛交| 福利在线一区二区| 国产在线中文字幕| 成人av在线影院| 成人h片在线播放免费网站| 精品午夜福利在线观看| 日韩在线综合| 亚洲欧洲视频在线| 最新版天堂资源在线| 男人亚洲天堂| 色域天天综合网| 国产欧美在线一区二区| 国产精品久久久久精| 亚久久调教视频| 久久久久久国产免费| 欧美性生交大片| 巨大黑人极品videos精品| 亚洲线精品一区二区三区八戒| 五月天色一区| 你懂的视频在线播放| 国产精品一区二区x88av| 丝袜美腿精品国产二区| 精品无码在线视频| 亚洲**毛片| 欧美福利一区二区| 91极品视频在线观看| 一根才成人网| 狠狠久久亚洲欧美专区| 人妻av中文系列| av资源在线看片| 亚洲一区二区高清| 国产爆乳无码一区二区麻豆| 2024短剧网剧在线观看| 中文字幕亚洲在| 亚洲一区二区三区精品视频| 成年人在线观看视频| 久久久精品综合| 欧洲高清一区二区| 精品成人无码久久久久久| 最新亚洲视频| 97色在线视频| 国产成人亚洲欧洲在线| 亚洲人成在线影院| 69影院欧美专区视频| 久久久久久久99| 亚洲黄网站黄| 欧美在线观看网址综合| 男人天堂视频网| 久久精品国产网站| 成人国产在线激情| 国产美女永久免费| 国产成人免费av在线| 成人av影视在线| 亚洲人妻一区二区三区| 久久伊99综合婷婷久久伊| 久久资源av| 9色在线视频网站| 中文字幕一区二区三区不卡 | 国模吧一区二区三区| 久久久久久国产精品视频| 激情自拍一区| 国产精品第七十二页| 国产一区二区三区在线观看| 国产精品一区不卡| 精品视频免费观看| jizz亚洲| 亚洲成人手机在线| 少妇性饥渴无码a区免费| 日韩国产大片| 天天色 色综合| 熟女性饥渴一区二区三区| 成人福利片在线| 日韩三区在线观看| 偷拍夫妻性生活| 亚洲天堂免费| 欧美一区二区.| 国产精品九九九九| 91丨九色porny丨蝌蚪| 亚洲视频精品一区| 国产蜜臀在线| 欧美性高清videossexo| 性生活一级大片| 精品欧美一区二区久久久久| 偷拍盗摄高潮叫床对白清晰| 国产乱肥老妇国产一区二 | 亚洲伊人伊成久久人综合网| 欧美一级片在线看| 成人夜晚看av| 亚洲最大av网| 国产999久久久| 久久久久久久久蜜桃| 欧美少妇一区二区三区| 性欧美18一19sex性欧美| 日韩一区二区三区高清免费看看| 三级黄色片网站| 亚洲精品99| 国产精品国产三级国产aⅴ9色 | 国产网红女主播精品视频| 高跟丝袜欧美一区| 又黄又爽又色的视频| 欧美日韩在线二区| 欧美一二三视频| 超碰人人人人人人| 国产精品进线69影院| 中文字幕无码不卡免费视频| jazzjazz国产精品久久| 久久精品视频导航| 中文字幕福利视频| 久久精品日韩一区二区三区| av免费观看大全| 午夜视频一区二区在线观看| 久久精品国产欧美亚洲人人爽| 波多野结衣mp4| 久久综合色综合88| 国产在线播放观看| 96sao在线精品免费视频| 欧美成人精品在线| 国产乱码精品一区二区| 国产性色一区二区| 无码人妻精品一区二区三区在线| caoporn成人免费视频在线| 美女久久久久久久久久久| 国产精品一级二级| √…a在线天堂一区| 三级在线视频观看| 日韩大片在线播放| 日本久久久久久久| 国产高清一区在线观看| 日本高清不卡视频| 亚洲а∨天堂久久精品2021| 久久亚洲电影| 欧美一区二区视频17c| 日韩电影网站| 亚洲视频在线观看免费| 激情网站在线观看| 国产欧美精品国产国产专区| 亚洲性生活网站| 欧美日韩在线播放视频| 国产美女精彩久久| 国产色在线观看| 国产精品国产自产拍在线| 熟妇人妻无乱码中文字幕真矢织江| 伊甸园亚洲一区| 国产精品入口尤物| 尤物在线视频| 日韩三级中文字幕| 免费在线观看亚洲| 99久久99精品久久久久久| 国产日产欧美视频| 成人激情开心网| 91久久综合亚洲鲁鲁五月天| 日本动漫同人动漫在线观看| 亚洲韩国日本中文字幕| 欧美一区免费看| 亚洲天天做日日做天天谢日日欢| 国产乱国产乱老熟300部视频| 欧美激情在线精品一区二区三区| 日韩暖暖在线视频| 黄色在线观看网站| 亚洲电影在线看| 色一情一乱一伦| 1024国产精品| 国产制服丝袜在线| 青青国产91久久久久久| 日本一道在线观看| 欧美调教在线| 欧美国产亚洲精品久久久8v| 午夜在线视频免费| 欧美亚洲国产一区在线观看网站| 日本中文字幕免费在线观看| 成a人片国产精品| youjizzxxxx18| 欧美视频福利| 日本一区二区三区四区高清视频 | 99在线视频免费观看| 日本蜜桃在线观看视频| 中文字幕无线精品亚洲乱码一区| 亚洲精品久久久久久久久久| 欧美午夜理伦三级在线观看| 欧美成人精品一区二区免费看片| 91美女视频网站| 中文字幕在线视频一区二区| 久久不射中文字幕| 狠狠干视频网站| 欧美日韩伦理| 国产精品一区二区欧美黑人喷潮水| 欧美韩国亚洲| 久久久视频在线| 蜜桃视频在线观看免费视频网站www| 亚洲成人黄色在线观看| 国产一区二区视频免费观看| 日韩欧美在线网址 | 337p粉嫩色噜噜噜大肥臀| 亚洲三级电影网站| 在线小视频你懂的| 成人av电影免费观看| 在线视频日韩欧美| 美女视频网站黄色亚洲| 久久国产亚洲精品无码| 国产综合网站| 欧美爱爱视频网站| 欧美日韩在线二区| 欧美欧美一区二区| 久久久久久毛片免费看| 91精品视频免费看| 成人av色网站| 国产精品久久77777| 蜜桃av在线播放| 久久久久久久久久久亚洲| 黄色片网站在线观看| 国产一级揄自揄精品视频| 天天在线女人的天堂视频| 欧美日韩在线看| 久久精品一级片| 一区二区激情视频| 亚洲欧美在线不卡| 成人动漫一区二区三区| 欧美性受xxxx黒人xyx性爽| 蜜桃精品在线观看| 日本爱爱免费视频| 三级精品在线观看| 久久久久免费精品| 日韩精品视频网| 无码人妻精品一区二区三区66| 欧美亚洲视频| 亚洲中文字幕无码不卡电影| 亚洲在线黄色| 日日碰狠狠躁久久躁婷婷| 久久99伊人| 日本在线观看a| 日av在线不卡| 在线观看亚洲色图| 久久se精品一区二区| 精品久久久99| 国产精品自在在线| 第一页在线视频| 成人精品国产福利| 中文在线一区二区三区| 久久综合狠狠综合久久综合88| 人妻体内射精一区二区| 国产欧美日韩精品一区| 亚洲女同二女同志奶水| 亚洲日韩欧美一区二区在线| 欧美成人一区二区三区高清| 亚洲一区二区三区四区在线免费观看| 免费视频一二三区| 婷婷国产在线综合| 波多野结衣大片| 91麻豆精品国产91久久久久久 | 在线国产99| 综合视频在线| 国产视频一视频二| 日本网站在线观看一区二区三区| xx欧美撒尿嘘撒尿xx| 国产九色精品成人porny| 中国xxxx性xxxx产国| 久久网这里都是精品| 成人免费视频入口| 一区二区三区精品视频在线| 黄网在线观看视频| 亚洲欧美日韩国产一区二区三区 | 亚洲福利专区| 能在线观看的av网站| 狠狠色丁香久久婷婷综| 亚洲人成无码www久久久| 蜜桃精品在线观看| jjzzjjzz欧美69巨大| 国产欧美一区二区精品性| 黑鬼狂亚洲人videos| 婷婷激情综合网| 一区二区三区亚洲视频| 亚洲国产精品一区二区三区| 中文字幕日本在线| 国内精品久久久久久中文字幕 | av片在线观看网站| 欧美一级视频免费在线观看| 亚洲欧美在线人成swag| 久久国产精品一区二区三区| 在线精品自拍| 欧美重口乱码一区二区| 好吊视频一区二区三区四区| 免费黄色一级网站| 成人国产精品免费观看动漫| 成年人视频软件| 欧美午夜精品在线| www.我爱av| 中文字幕精品久久久久| 9999在线视频| 91久久极品少妇xxxxⅹ软件| 北条麻妃国产九九九精品小说| 日韩 欧美 视频| 韩国成人精品a∨在线观看| 中文字幕在线看高清电影| 亚洲综合在线第一页| 在线观看色网站| 亚洲欧美日韩精品久久| 国产精品探花在线| 亚洲free性xxxx护士hd| 操欧美老女人| 日韩中文字幕免费在线| 成人av免费在线| 国产高潮流白浆| 欧美高清性hdvideosex| 国产香蕉视频在线看| 91精品国产高清自在线| 97人人澡人人爽91综合色| 日韩第一页在线观看| 蜜臀久久99精品久久久画质超高清 | 亚洲自拍高清视频网站| 精品美女久久久| 日韩欧美在线播放视频| av高清久久久| 国产伦精品一区二区三区高清版 | 男人的天堂avav| 国产欧美另类| 一边摸一边做爽的视频17国产| 一区二区三区四区乱视频| 97人妻人人澡人人爽人人精品| 在线观看日韩专区| 国产91欧美| 亚洲一卡二卡区| 久久99精品久久久久婷婷| 婷婷丁香综合网| 欧美人与禽zozo性伦| av男人的天堂在线| 国产日韩在线看片| 91精品天堂福利在线观看| 免费黄频在线观看| 一区二区三区精品在线| 蜜桃视频污在线观看| 91av视频在线观看| 伊人久久大香线蕉无限次| 日本成人黄色网| 中文字幕免费不卡| 在线观看中文字幕码| 久久久成人精品视频| 欧美成年网站| 国产 高清 精品 在线 a| 国产一区日韩欧美| 免费黄色三级网站| 色94色欧美sute亚洲线路一ni| www.亚洲视频| 91夜夜未满十八勿入爽爽影院| 欧美在线1区| 精品无码人妻少妇久久久久久| 精品福利免费观看| 玖玖综合伊人| 成人精品久久一区二区三区| 欧美a级在线| 国产网站无遮挡| 精品视频一区二区三区免费| 国产精品一卡二卡三卡| 国产精品手机在线| 久久精品免费| 国产乱国产乱老熟300| 日韩精品久久久久久福利| 最新日韩一区| 2022中文字幕| 久久久久久电影| av av片在线看| 91av免费观看91av精品在线| 色97色成人| 亚洲欧美高清在线| 欧美性大战久久| av美女在线观看| 亚洲 国产 欧美一区| 成人午夜免费电影| 国产第一页在线观看| 久久777国产线看观看精品| 亚洲a级精品| 亚洲一级片免费观看| 色综合久久中文字幕综合网| 国产黄色在线免费观看| 国产欧美一区二区三区视频| 欧美三级在线| 综合 欧美 亚洲日本| 日韩精品一区二区三区第95| 国产精品日韩精品在线播放|