亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > Redis命令使用技巧之Keys的相關操作

Redis命令使用技巧之Keys的相關操作

熱門標簽:四川穩定外呼系統軟件 南京手機外呼系統廠家 400電話辦理的口碑 一個地圖標注多少錢 b2b外呼系統 廊坊外呼系統在哪買 高碑店市地圖標注app 地圖標注工廠入駐 臺灣電銷

前言

介紹完Redis連接相關命令后,再來介紹一下與Key相關的命令,Redis作為一個key-value數據庫,對Key進行操作是無法避免的。

KEYS 的速度非常快,但在一個大的數據庫中使用它仍然可能造成性能問題,如果你需要從一個數據集中查找特定的 key ,你最好還是用 Redis 的集合結構(set)來代替。

DEL

最早可用版本1.0.0

刪除指定的鍵值對,如果指定的key不存在,則忽略。DEL命令的時間復雜度是O(N),對于除字符串外的其他數據類型,命令的時間復雜度為O(M),M是值的元素的個數。所以,在生產環境盡量避免一次性刪除過多復雜數據類型的操作。

127.0.0.1:6379> SET key1 "jackey"
OK
127.0.0.1:6379> SET key2 "zhe"
OK
127.0.0.1:6379> DEL key1 key2 key3
(integer) 2

DUMP

最早可用版本2.6.0

使用一種Redis的格式序列化指定鍵存儲的值。可用使用RESTORE命令將這個值反序列化。

這種序列化格式有以下3個特點:

  • 它包含有64位的校驗和,用于錯誤檢查,RESTORE命令在反序列化之前會先檢查校驗和
  • 值的編碼格式和RDB文件的編碼格式相同
  • RDB的版本會被序列化到值中,因此,不同版本的Redis可能會因為不兼容RDB版本而拒絕反序列化

序列化的值不包含過期時間的相關信息,可以使用PTTL命令獲取當前值的存活時間。如果值不存在則會返回nil

127.0.0.1:6379> SET key1 "jackey"
OK
127.0.0.1:6379> DUMP key1
"\x00\x06jackey\b\x00\xec\x89'G'X\xfc:"
127.0.0.1:6379> DUMP not-exist-key
(nil)

DUMP時間復雜度分為兩部分:訪問key值的時間復雜度為O(1),而序列化值的時間復雜度為O(N*M),N是組成值的元素的數量,M是元素的平均大小。如果序列化比較短的字符串,則該命令的時間復雜度可以看做O(1)。

EXISTS

最早可用版本1.0.0

用于判斷key是否存在。3.0.3版本以后支持多參數,即可以一次性判斷多個key,返回值是存在的key的數量。對于判斷單個key是否存在,會返回1或者0,因此,該命令是向后兼容的。

需要注意的是:如果參數中有重復的存在命令,則返回結果不會去重。

127.0.0.1:6379> SET key1 "jackey"
OK
127.0.0.1:6379> SET key2 "zhe"
OK
127.0.0.1:6379> EXISTS key1
(integer) 1
127.0.0.1:6379> EXISTS not-exist-key
(integer) 0
127.0.0.1:6379> EXISTS key1 key2 not-exist-key
(integer) 2
127.0.0.1:6379> EXISTS key1 key1 key1
(integer) 3

EXPIRE

最早可用版本1.0.0

為指定的key設置存活時間。存活時間會被DEL,SET,GETSET和所有的STORE命令刪除或者覆蓋。如果我們只修改key的值而不修改存活時間或者保存到一個新的key中,則原來的key的存活時間保持不變。如果使用RENAME對一個key重命名,那么原有key的存活時間會賦給新的key。

如果想要清除存活時間,使指定的key成為一個永久的key,則可以使用PERSIST命令,我們稍后會詳細介紹這個命令。

如果使用EXPIRE/PEXPIRE為某個key設置的存活時間為非正數,或者使用EXPIREAT/PEXPIREAT設置了一個過去的時間,則這個key會直接被刪除。

127.0.0.1:6379> EXPIRE key1 -1
(integer) 1
127.0.0.1:6379> EXISTS key1
(integer) 0

對一個已經有存活時間的key再次使用EXPIRE設置存活時間,則將key的存活時間更新,在許多應用中我們都會用到這一點。

注意:在Redis的2.1.3版本之前,如果修改一個帶有存活時間的key的值,則會刪除整個key。

關于時間精度,Redis2.4版本中,一個key過期的一秒內仍可以訪問,而到了2.6版本,這一時間已經被精確到了1毫秒。因為從2.6版本開始,存活時間保存的是絕對時間(Unix的時間戳),而這就意味著,你的計算機的時間需要保證可靠,如果你將RDB文件放到另一臺機器上加載,當這兩臺機器的時間差距較大時,你就會發現可能有些key被刪除了或者有些key的存活時間被延長了。

下面我們在來討論一下Redis究竟是如何使key過期的,Redis的過期策略有兩種:一種是被動的,一種是主動的。

被動過期就是當客戶端訪問某個key,服務端會去檢查這個key的存活時間,判斷是否過期。當然,這種過期策略存在一定的問題,如果某個key一直都不訪問,就不會被發現它過期了,那么它將永遠“茍活”在內存中。所以Redis會定期隨機的查看被設置過存活時間的key,看它們是否過期,如果過期了,就會及時清理掉。Redis每秒會做10次下面的操作:

  • 隨機查看20個設置過存活時間的key(從設置存活時間的set中取)
  • 刪除所有過期的key
  • 如果過期的key超過25%,那么會從第一步開始再執行一次

EXPIREAT

最早可用版本1.2.0

此命令和EXPIRE的作用相同,不同之處是它的參數需要傳Unix時間戳(即從1970年1月1日起的毫秒數)。

127.0.0.1:6379> GET key2
"zhe"
127.0.0.1:6379> EXPIREAT key2 1537733374
(integer) 1
127.0.0.1:6379> TTL key2
(integer) 12960

KEYS

最早可用版本1.0.0

這個命令會返回匹配到的所有key,時間復雜度為O(N)。在官方文檔中說,在入門級的筆記本電腦上,Redis掃描100萬條key只需要40毫秒,但是我們仍然要避免在生產環境使用這個命令。特別是千萬不要使用KEYS *這樣的命令,因為你不知道生產環境存在多少key,這樣的命令有可能使你的生產環境的Redis陷入很長一段時間的不可用狀態。所以,請馬上刪除應用層代碼中的KEYS命令或者抓緊時間更新自己的簡歷。

如果需要查找key,可以使用SCAN命令或者sets命令。

雖然我們非常不建議使用KEYS命令,但是它的匹配策略還是要介紹一下的:

?是單個字符的通配符,*是任意個數的通配符,[ae]會匹配到a或e,^e表示不匹配e,a-c表示匹配a或b或c,特殊符號使用\隔開。

127.0.0.1:6379> MSET key1hello jackey key2hello zhe age 3
OK
127.0.0.1:6379> KEYS key?hello
1) "key1hello"
2) "key2hello"
127.0.0.1:6379> KEYS k*
1) "key1hello"
2) "key2hello"
127.0.0.1:6379> KEYS *age*
1) "age"
127.0.0.1:6379> KEYS *
1) "age"
2) "key1hello"
3) "key2hello"

MIGRATE

最早可用版本2.6.0

這個命令用來將源實例的key以原子操作傳輸到目標實例,然后將源實例的key刪除。相當于在源實例執行了DUMP+DEL操作,在目標實例執行了RESTORE操作。這一操作會阻塞進行傳輸的兩個實例,在傳輸過程中,key總會存在于一個實例中,除非發生超時錯誤。在3.2版本以后,MIGRATE可以將多個key作為管線一次性傳輸。

在執行MIGRATE命令時,必須要設置一個超時時間,如果到了超時時間命令仍未執行完,則會拋出一個IOERR。但返回這個錯誤時,兩個實例的狀態可能有兩種:要么兩個實例都存在指定的key,要么只有源實例存在指定的key。總之,key是不會丟失的。

從3.0.6版本開始,MIGRATE支持一次傳輸多個key,為了保證不過載或者出現環形操作,MIGRATE需要使用KEYS參數,而原來指定的key的參數要被設置為空字符串。

MIGRATE 192.168.1.34 6379 "" 0 5000 KEYS key1 key2 key3

這里還有兩個選填參數需要介紹:一個是COPY,加上這個參數的話,傳輸完成后不會刪除源實例中的key。另一個是REPLACE,這個參數的作用是替換目標實例已存在的key。這兩個參數在3.0版本以后才可以使用。

MOVE

最早可用版本1.0.0

不知道大家還記不記得前文中我們提到過的SELECT命令,SELECT用來切換數據庫。使用MOVE命令就是將當前數據庫的key移動到指定的數據庫中,如果指定庫中已經存在這個key或者當前庫不存在這個key,那么這個命令什么也不做。

127.0.0.1:6379> KEYS *
1) "age"
2) "key1hello"
3) "key2hello"
127.0.0.1:6379> MOVE age 1
(integer) 1
127.0.0.1:6379> KEYS *
1) "key1hello"
2) "key2hello"
127.0.0.1:6379> SELECT 1
OK
127.0.0.1:6379[1]> KEYS *
1) "age"

OBJECT

最早可用版本2.2.3

OBJECT用來查看Redis對象內部的相關信息。這一命令在調試時經常被使用。下面我們來介紹OBJECT命令的具體用法:

  • OBJECT REFCOUNT key:返回指定key的值的引用數量
  • OBJECT ENCODING key:返回指定key的內部存儲使用的編碼格式
  • OBJECT IDLETIME key:返回指定key的空閑時間(有多長時間沒有被讀寫),目前最小精度為10秒,這一命令經常在Redis淘汰機制中使用(淘汰策略為LRU或noeviction)
  • OBJECT FREQ key:返回指定key訪問頻率的對數,當淘汰策略為LFU時,這一命令會被用到
  • OBJECT HELP:返回幫助信息

對象的編碼格式也有很多種:

  • Strings會被編碼為raw或int
  • Lists會被編碼為ziplist或linkedlist
  • Sets會被編碼為intset或hashtable
  • Hashs會被編碼為ziplist或hashtable
  • Sorted Sets會被編碼為ziplist或skiplist
127.0.0.1:6379> OBJECT REFCOUNT key1hello
(integer) 1
127.0.0.1:6379> OBJECT IDLETIME key2hello
(integer) 3637
127.0.0.1:6379> OBJECT ENCODING age
"int"

PERSIST

最早可用版本2.2.0

刪除指定key的過期時間,使之變成永久的key。

PEXPIRE

最早可用版本2.6.0

PEXPIRE的作用和EXPIRE一樣,只不過參數中的時間單位是毫秒。

PEXPIREAT

最早可用版本2.6.0

作用和EXPIREAT相同,參數同樣是毫秒。

PTTL

最早可用版本2.6.0

返回指定key的剩余存活時間的毫秒數。2.8以后的版本返回值有些變化,如果key不存在,則返回-2;如果key是永久的,則返回-1。

RANDOMKEY

最早可用版本1.0.0

此命令用于從當前數據庫返回一個隨機的key。

RENAME

最早可用版本1.0.0

重命名一個key。如果key不存在,則會返回錯誤。而如果新的key已經存在,則此命令會覆蓋原來的key(它其實是執行了一個隱式的DEL命令,因此如果原來的key存儲的對象很大的話, 刪除操作延時會很高)。在3.2版本以前,如果源key和目標key相同的話,會報錯。

RENAMENX

如果新的key不存在的話,重命名key,如果存在的話返回0,成功返回1。

RESTORE

最早可用版本2.6.0

用法:RESTORE key ttl serialized-value [REPLACE]

此命令是將一組數據反序列化,并存到key。如果ttl是0,則key是永久的。在Redis3.0版本以后,如果不使用REPLACE參數并且key已經存在,則會返回一個錯誤“Target key name is busy”。

SCAN

最早可用版本2.8.0

用法:SCAN cursor MATCH pattern COUNT count

其中cursor為游標,MATCH和COUNT為可選參數。

SCAN命令和SSCAN、HSCAN、ZSCAN命令都用于增量的迭代元素集,它每次返回小部分數據,不會像KEYS那樣阻塞Redis。SCAN命令是基于游標的,每次調用后,都會返回一個游標,用于下一次迭代。當游標返回0時,表示迭代結束。

SCAN每次返回的數量并不固定,也有可能返回數據為空。另外,SCAN命令和KEYS命令一樣支持匹配。

我們在Redis里存入10000個key用于測試。

結果如下:

127.0.0.1:6379> scan 0 match key24* count 1000
1) "1688"
2) 1) "key2411"
 2) "key2475"
 3) "key2494"
 4) "key2406"
 5) "key2478"
127.0.0.1:6379> scan 1688 match key24* count 1000
1) "2444"
2) 1) "key2458"
 2) "key249"
 3) "key2407"
 4) "key2434"
 5) "key241"
 6) "key2497"
 7) "key2435"
 8) "key2413"
 9) "key2421"
 10) "key248"
127.0.0.1:6379> scan 2444 match key24* count 1000
1) "818"
2) 1) "key2459"
 2) "key2462"
 3) "key2409"
 4) "key2454"
 5) "key2431"
 6) "key2423"
 7) "key2476"
 8) "key2428"
 9) "key2493"
 10) "key2420"
127.0.0.1:6379> scan 818 match key24* count 1000
1) "9190"
2) 1) "key2402"
 2) "key2415"
 3) "key2429"
 4) "key2424"
 5) "key2425"
 6) "key2400"
 7) "key2472"
 8) "key2479"
 9) "key2448"
 10) "key245"
 11) "key2487"
 12) "key2430"
 13) "key2405"
127.0.0.1:6379> scan 9190 match key24* count 1000
1) "12161"
2) 1) "key2488"
 2) "key2437"
 3) "key2404"
 4) "key2440"
 5) "key2461"
 6) "key2416"
 7) "key2436"
 8) "key2403"
 9) "key2460"
 10) "key2452"
 11) "key2449"
 12) "key2482"
127.0.0.1:6379> scan 12161 match key24* count 1000
1) "11993"
2) 1) "key2483"
 2) "key2491"
 3) "key242"
 4) "key2466"
 5) "key2446"
 6) "key2465"
 7) "key243"
 8) "key2438"
 9) "key2457"
 10) "key246"
 11) "key2422"
 12) "key2418"
127.0.0.1:6379> scan 11993 match key24* count 1000
1) "7853"
2) 1) "key2498"
 2) "key2451"
 3) "key2439"
 4) "key2495"
 5) "key2408"
 6) "key2410"
127.0.0.1:6379> scan 7853 match key24* count 1000
1) "5875"
2) 1) "key2486"
 2) "key2490"
 3) "key244"
 4) "key2401"
 5) "key2463"
 6) "key2481"
 7) "key2477"
 8) "key2468"
 9) "key2433"
 10) "key2489"
 11) "key2455"
 12) "key2426"
 13) "key24"
 14) "key2450"
 15) "key2414"
 16) "key2442"
 17) "key2473"
 18) "key2467"
 19) "key2469"
 20) "key2456"
127.0.0.1:6379> scan 5875 match key24* count 1000
1) "14311"
2) 1) "key2453"
 2) "key2492"
 3) "key2480"
 4) "key2427"
 5) "key2443"
 6) "key2417"
 7) "key2432"
 8) "key240"
 9) "key2445"
 10) "key2484"
 11) "key2444"
 12) "key247"
 13) "key2485"
127.0.0.1:6379> scan 14311 match key24* count 1000
1) "16383"
2) 1) "key2441"
 2) "key2474"
 3) "key2447"
 4) "key2471"
 5) "key2470"
 6) "key2464"
 7) "key2412"
 8) "key2419"
 9) "key2499"
 10) "key2496"
127.0.0.1:6379> scan 16383 match key24* count 1000
1) "0"
2) (empty list or set)

可以看到雖然我們設置的count為1000,但Redis每次返回的數值只有10個左右。

SORT

最早可用版本1.0.0

當有N個元素需要排序,并且要返回M個元素時,SORT命令的時間復雜度為O(N+M*log(M))

此命令用于返回或保存list,set和sorted set的鍵,默認將數字或者可排序的key進行排序,Redis會將其視為雙精度浮點數。

如果想要對字符串按字典順序排序,可以使用ALPHA參數。

如果想要按照外部字段進行排序,可以使用BY參數。

TOUCH

最早可用版本3.2.1

修改某一個或多個key的最后訪問時間,如果key不存在,則忽略。

TTL

最早可用版本1.0.0

返回指定key的剩余存活時間,單位為秒。

在2.6版本及以前,如果key不存在或者是永久key,都會返回-1。從2.8版本開始,如果key不存在,則返回-2,如果key為永久key,則返回-1。

TYPE

最早可用版本1.0.0

返回key存儲的值的類型。類型即為我們在Redis基礎數據結構一文中描述的5中數據類型。

String

String是最基本的,也是最常用的類型。它是二進制安全的,也就是說,我們可以將對象序列化成json字符串作為value值存入Redis。在分配內存時,Redis會為一個字符串分配一些冗余的空間,以避免因字符串的值改變而出現頻繁的內存分配操作。當字符串長度小于1M時,每次擴容都會加倍現有空間,當長度大于1M時,每次擴容,增加1M,Redis字符串的最大長度是512M。

Hash

Hash是鍵值對集合,相當于Java中的HashMap,實際結構也和HashMap一樣,是數組+鏈表的結構。所不同的是擴容的方式不同,HashMap是進行一次rehash,而Redis為了不阻塞服務,會創建一個新的數組,在查詢時會同時查詢兩個Hash,然后在逐漸將舊的Hash內容轉移到新的中去。一個Hash最大可以存儲232-1個鍵值對。

List

List相當于Java中的LinkedList,它的插入和刪除操作的時間復雜度為O(1),而查詢操作的時間復雜度為O(n)。我們可以利用List的rpush、rpop、lpush和lpop命令來構建隊列或者棧。列表最多可以存儲232-1個元素。

Set

Set是String類型的無序集合,并且元素唯一,相當于Java中的HashSet,它的插入、刪除、查詢操作的時間復雜度都是O(1)。其最大元素數也是232-1個。

zset

zset可以看做是Java中SortedSet和HashMap的結合,一方面它不允許元素重復,另一方面,它通過score為每個元素進行排序。

UNLINK

最早可用版本4.0.0

這個命令和DEL類似,會刪除指定的key。所不同的是,此命令的時間復雜度為O(1),它先將key從keyspace中刪除,此時指定的key已經刪除,但是內存沒有釋放。所以,這個命令會在另一個線程中做釋放內存的操作。這一步的操作時間復雜度為O(N)。

WAIT

最早可用版本3.0.0

這個命令會阻塞客戶端,直到前面所有的寫操作都完成并且保存了指定數量的副本。該命令總會返回副本數量或者超時。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • Redis遍歷所有key的兩個命令(KEYS 和 SCAN)
  • redis keys與scan命令的區別說明
  • 解決spring中redistemplate不能用通配符keys查出相應Key的問題
  • 在RedisTemplate中使用scan代替keys指令操作
  • Redis的KEYS 命令千萬不能亂用
  • Redis不使用 keys 命令獲取鍵值信息的方法
  • redis 用scan指令 代替keys指令(詳解)
  • 淺談Redis的keys命令到底有多慢

標簽:畢節 泰州 定州 拉薩 伊春 河源 南寧 甘南

巨人網絡通訊聲明:本文標題《Redis命令使用技巧之Keys的相關操作》,本文關鍵詞  Redis,命令,使用技巧,之,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Redis命令使用技巧之Keys的相關操作》相關的同類信息!
  • 本頁收集關于Redis命令使用技巧之Keys的相關操作的相關信息資訊供網民參考!
  • 推薦文章
    日本特黄特黄aaaaa大片| 国产一区二区福利久久| 欧美大片一区| 午夜在线亚洲| 国产视频久久久久| 成人免费网站视频ww| 美女免费精品视频在线观看| 精品国产一区二区三区久| 成人在免费观看视频国产| 日韩中文字幕一区| 国产国语对白一级毛片| 尤物视频网站在线| 色综合久久天天综线观看| 免费毛片播放| 日本在线不卡视频| 国产成人精品综合久久久| 天天做日日爱| 日韩av片免费播放| 日韩一级精品视频在线观看| 91麻豆精品国产自产在线观看一区| 黄视频网站免费观看| 日韩欧美一及在线播放| 免费的黄色小视频| 日韩av成人| 国产一区二区高清视频| 一级片片| 欧美一级视频高清片| 可以免费在线看黄的网站| 日韩字幕在线| 99色视频在线观看| 国产一区二区精品在线观看| 日韩在线观看免费完整版视频| 一级毛片视频在线观看| 日韩字幕在线| 亚洲 欧美 91| 久久久久久久免费视频| 国产精品123| 久久久成人网| 欧美爱爱网| 超级乱淫伦动漫| 黄视频网站免费看| 欧美a级片视频| 欧美激情在线精品video| 国产高清在线精品一区二区| 国产亚洲男人的天堂在线观看| 成人高清免费| 亚洲精品中文一区不卡| 国产麻豆精品hdvideoss| 国产视频一区二区三区四区 | 亚洲精品中文字幕久久久久久| 久草免费在线色站| 青青久久网| 久久精品欧美一区二区| 国产网站免费视频| 久草免费在线视频| 日韩中文字幕在线播放| 国产麻豆精品| 一级女性全黄生活片免费| 久久成人综合网| 亚州视频一区二区| 国产福利免费观看| 精品视频在线观看一区二区 | 欧美大片aaaa一级毛片| 国产视频一区二区三区四区 | 日韩av成人| 色综合久久天天综合观看| 欧美激情一区二区三区在线| 国产麻豆精品免费密入口| 久久精品大片| 成人高清视频免费观看| 精品国产一区二区三区久久久狼| 韩国妈妈的朋友在线播放| 国产精品免费精品自在线观看| 色综合久久久久综合体桃花网| 国产综合91天堂亚洲国产| 日日夜人人澡人人澡人人看免| 美女免费毛片| 免费的黄视频| 亚洲女人国产香蕉久久精品| 国产网站免费视频| 国产一区二区精品尤物| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 天天色色色| 久久精品免视看国产明星| 欧美a级大片| 深夜做爰性大片中文| 亚洲女人国产香蕉久久精品| 日本特黄特黄aaaaa大片| 九九热国产视频| 韩国毛片免费大片| 国产网站免费| 亚洲女初尝黑人巨高清在线观看| 日韩中文字幕在线播放| 日韩专区在线播放| 成人免费一级毛片在线播放视频| 精品国产一区二区三区久久久狼| 九九精品在线| 亚洲 欧美 91| 国产极品白嫩美女在线观看看| 亚洲 激情| 欧美激情一区二区三区视频高清| 精品国产一区二区三区久久久狼| 成人免费一级纶理片| 香蕉视频三级| 国产原创中文字幕| 亚欧视频在线| 亚洲www美色| 美女免费黄网站| 欧美激情一区二区三区视频高清| 一级女性大黄生活片免费| 日本乱中文字幕系列| 黄色免费三级| 国产91精品一区二区| 亚洲第一色在线| 精品久久久久久中文字幕一区 | 成人高清视频在线观看| 国产激情视频在线观看| 欧美一级视频免费| 999久久久免费精品国产牛牛| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 可以在线看黄的网站| 国产不卡在线播放| 日韩在线观看视频网站| 日本免费乱人伦在线观看| 欧美大片毛片aaa免费看| 成人av在线播放| 成人高清免费| 国产国语对白一级毛片| 日韩免费在线视频| 国产精品免费久久| 久久福利影视| 青青久久网| 四虎论坛| 成人免费一级纶理片| 成人a大片高清在线观看| 毛片高清| 日本特黄一级| 成人a级高清视频在线观看| 成人免费一级毛片在线播放视频| 免费的黄色小视频| 精品在线视频播放| 国产不卡精品一区二区三区| 九九久久99| 色综合久久天天综合绕观看| 精品国产一区二区三区久 | 欧美1区| 日韩av片免费播放| 精品视频一区二区| 国产不卡高清在线观看视频| 亚洲 国产精品 日韩| 国产一区二区精品尤物| 黄色免费三级| 99久久精品国产片| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 色综合久久天天综合观看| 国产国语对白一级毛片| 欧美另类videosbestsex高清| 欧美大片aaaa一级毛片| 999久久66久6只有精品| 91麻豆精品国产综合久久久| 午夜在线亚洲| 日韩字幕在线| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 亚飞与亚基在线观看| 欧美a级大片| 国产91精品一区| 一级女性大黄生活片免费| 在线观看成人网 | 黄色免费三级| 国产不卡高清| 国产精品123| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 免费毛片基地| 久草免费在线视频| 久久精品大片| 四虎久久影院| 免费国产在线观看| 久草免费资源| 久久精品免视看国产明星| 亚洲天堂免费观看| 日韩一级精品视频在线观看| 久久精品店| 日韩专区一区| 成人免费观看的视频黄页| 欧美激情一区二区三区在线| 国产亚洲男人的天堂在线观看| 欧美爱色| 成人免费一级毛片在线播放视频| 99热精品一区| 国产美女在线一区二区三区| 欧美激情中文字幕一区二区| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 可以免费在线看黄的网站| 欧美1区| 精品国产一区二区三区国产馆| 99久久精品国产高清一区二区| 高清一级做a爱过程不卡视频| 九九久久99| 久久精品欧美一区二区| 国产一区二区高清视频|