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

Redis常見用法的進階秘籍,速看!

存儲 存儲軟件 開發工具 Redis
Redis 大家用的不少,但是我們大多數人可能都只是關注業務本身,對于底層的細節則經常忽略,久而久之,對個人的成長幫助甚少。

 Redis 大家用的不少,但是我們大多數人可能都只是關注業務本身,對于底層的細節則經常忽略,久而久之,對個人的成長幫助甚少。

[[396678]]

圖片來自 Pexels

本文為大家總結了關于 Redis 常見用法的進階指南,希望幫助大家加深對這門技術的理解。

Redis 基礎數據結構

①String

Redis 里的字符串是動態字符串,會根據實際情況動態調整。類似于 Go 里面的切片-slice,如果長度不夠則自動擴容。

至于如何擴容,方法大致如下:當 length 小于 1M 的時候,擴容規則將目前的字符串翻倍;如果 length 大于 1M 的話,則每次只會擴容 1M,直到達到 512M。

②List

Redis 里的 List 是一個鏈表,由于鏈表本身插入和刪除比較塊,但是查詢的效率比較低,所以常常被用做異步隊列。

Redis 里的 List 設計非常牛,當數據量比較小的時候,數據結構是壓縮鏈表,而當數據量比較多的時候就成為了快速鏈表。

可運用的場景:在業務中異步隊列使用 rpush/lpush 操作隊列,使用 lpop 和 rpop 出隊列,具體結構如下圖所示:

③Set

Redis 中的 set 是一個無序 Map,由于 Go 中沒有 set 結構,所以這里只能類比 Java 中的 HashSet 概念。

Redis 的 set 底層也是一個 Map 結構,不同于 Java 的是:alue 是一個 NULL。由于 set 的特性,它可以用于去重邏輯,這一點在 Java 中也經常使用。

可運用場景:活動抽獎去重。

④Hash

Redis 中的字典類型大家不陌生,也許其他語言都有這種結構(python,Java,Go), hash 的擴容 rehash 過程和 Go 里面的設計頗有類似,也就是維護了兩個 hash 結構。

如果需要擴容的時候,就把新的數據寫入新字典中,然后后端起一個線程來逐步遷移,總體上來說就是采用了空間換時間的思想。

可運用場景:記錄業務中的不同用戶/不同商品/不同場景的信息:如某個用戶的名稱,或者用戶的歷史行為。

⑤Zset

Redis 中的 zset 是一個比較特殊的數據結構(跳躍列表),也就是我們了解到的跳表,底層由于 set 的特性保證了 value 唯一,同時也給了 value 一個得分,所謂的有序其實就是根據這個得分來排序。

至于跳躍表如何插入,其實內部采用了一個隨機策略:L0:100%-L2:50%-L3:25%-....Ln:(n-1)value/2%。

可運用場景:榜單,總榜,熱榜。

Redis 進階使用

①布隆過濾器

Redis 在 4.0 以后支持布隆過濾(準確的來說是支持了布隆過濾器的插件),給 Redis 提供了強大的去重功能。

在業務中,我們可能需要查詢數據庫判斷歷史數據是否存在,如果數據庫的并發能力有限,這個時候我們可以采用 Redis 的 set 做去重。

如果緩存的數據過大,這個時候就需要遍歷所有緩存數據,另外如果我們的歷史數據緩存寫不下了,終究要去查詢數據庫,這個時候就可以使用布隆過濾器。

當然布隆過濾器精確度不是 100% 準確(如果對數據準確度要求很高的話,這里不建議使用),因為對于存在的數據也許這個值不一定存在,當然如果不存在,那肯定 100% 不存在了。

命令使用:

  1. bf.add #添加元素 
  2. bf.exists #判斷元素是否存在 
  3. bf.madd #批量添加 
  4. bf.mexists #批量判斷是否存在 

原理如下圖:

布隆過濾的組成可以當作一個位數組和幾個計算結果比較均勻的 hash 函數,每次添加 key 的時候,會把 key 通過多次 hash 來計算所得到的位置,如果當前位置不是 0 則表示存在。

可以看到,這樣的計算存在一定誤差,這也正是它的不準確性問題的由來。

②分布式鎖

大家對分布式鎖也許也不會陌生,現在市面上主流的實現分布鎖的技術有 ZK 和 Redis;下文為大家簡單介紹一下 Redis 如何實現分布式鎖。

命令如下:

  1. setnx lock:mutex ture #加鎖 
  2. del  lock:mutex #刪除鎖 

實現分布式鎖的核心就是:請求的時候 Set 這個 key,如果其他請求設置失敗的時候,即拿不到鎖。

但是存在一個問題:如果業務 panic 或者忘記調用 del 的話,就會產生死鎖,這個時候大家很容易能想到:我們可以 expire 一個過期時間,這樣就可以保證請求不會一直獨占鎖且無法釋放鎖的邏輯了。

但是假設業務存在這樣一種情況:A 請求在獲取鎖后處理邏輯,由于邏輯過長,這個時候鎖到期釋放了,A 這個時候剛剛處理完成,而 B 又去改了這個數據,這就存在一個鎖失效的問題。

解決這種問題參考 CAS 的方式,對鎖設置一個隨機數,可以理解為版本號,如果釋放的時候版本號不一致,則表示數字已經在釋放那一刻改掉了。

深入原理

①IO 模型

Redis 是單線程模型(這里的單線程指的是 IO 和鍵值對的讀寫是一個線程完成的),當然如果嚴謹的來說還是可以理解為是多線。

不過這樣的多線程不過是在數據備份的時候會 fork 一個子進程對數據進行從磁盤讀取數據并組裝 RDB,然后同步給 slaver 節點的操作。

當然包括備份和持久化也都是通過另外起線程完成的,所以我們可以把 Redis 認作為一個單線程模型。

那么問題來了,為什么單線程的模型能這么快?原因很簡單,因為 Redis 本身就是在內存中運算,而對于上游的客戶端請求,采用了多路復用的原理。

Redis 會給每一個客戶端套接字都關聯一個指令隊列,客戶端的指令隊列通過隊列排隊來進行順序處理。

同時 Reids 給每一個客戶端的套件字關聯一個響應隊列,Redis 服務器通過響應隊列來將指令的接口返回給客戶端。

Redis IO 處理模型

②通信協議

Redis 采用了 Gossip 協議作為通信協議。Gossip 是一種傳播消息的方式,可以類比為瘟疫或者流感的傳播方式,使用 Gossip 協議的有:Redis Cluster、Consul、Apache Cassandra 等。

Gossip 協議類似病毒擴散的方式,將信息傳播到其他的節點,這種協議效率很高,只需要廣播到附近節點,然后被廣播的節點繼續做同樣的操作即可。

當然這種協議也有一個弊端就是:會存在浪費,哪怕一個節點之前被通知到了,下次被廣播后仍然會重復轉發。

③持久化

RDB:是對當前 Redis 的存儲數據進行一次快照(具體原理和如何做,限于篇幅這里不做過多復述了)。

AOF:日志只記錄 Redis 對內存修改的指令記錄,Redis 提供了一個 bgrewriteaif 的指令對 AOF 進行壓縮。

原理就是:開辟一個子進程對內存進行遍歷后,轉換成一系列對 Redis 的操作指令,序列化到一個新的 AOF 日志文件中。

系列化完成后再將發送的增量 AOF 日志追加到這個新的 AOF 日志中,追加完成后用新的 AOF 日志代替舊的。

混合持久化:由于單純 RDB 的話,可能存在數據的丟失,而頻繁的 AOF 又會影響了性能,在 Redis 4.0 之后,支持了混合持久化。

也就是每次啟動時候通過 RDB+增量的 AOF 文件來進行回復,由于增量的 AOF 僅記錄了開始持久化到持久化結束期間發生的增量,這樣日志不會太大,性能相對較高。

④主從同步

Redis 的同步方式有:主從同步、從從同步(由于全部都由 master 同步的話,會損耗性能,所以部分的 slave 會通過 slave 之間進行同步)。

同步過程如下:

  • 建立連接,然后從庫告訴主庫:“我要同步啦,你給我準備好”,然后主庫跟從庫說:“收到”。
  • 從庫拿到數據后,要把數據保存到庫里。這個時候就會在本地完成數據的加載,會用到 RDB 。
  • 主庫把新來的數據 AOF 同步給從庫。

⑤Sentinel

Redis 的主從切換是通過哨兵來解決的。這里哨兵主要解決的問題就是:當 master 掛了的情況下,如果在短時間內重新選舉出一個新的 master 。

Sentinel 集群是一個由 3-5 個(可以更多)節點組成的,用來監聽整個 Redis 的集群,如果發現 master 不可用的時候,會關閉和斷開全部的與 master 相連的舊鏈接。

這個時候 Sentinel 會完成選舉和故障轉移,新的請求則會轉到新到 master 中。

⑥Redis 集群工作原理

Redis 集群通過槽指派機制來決定寫命令應該被分配到那個節點。

整個集群對應的槽是由 16384 大小的二進制數組組成,集群中每個主節點分配一部分槽,每條寫命令落到二進制數組中的某個位置,該位置被分配給了哪個節點,則對應的命令就由該節點去執行。

槽指派對應的二進制數組如下圖所示:

從上圖可以看到:節點 1 只負責 執行 0 - 4999 的槽位,而節點 2 負責執行 5000 - 9999,節點 3 執行 9999- 16383 。

當進行寫的時候:

  1. set key value 

命令通過 CRC16(key) & 16383 = 6789(假設結果),由于節點 2 負責 5000~9999 的槽位,則該命令的結果 6789 最終由節點 2 執行。

當然如果在節點 2 執行一條命令時,假設通過 CRC 計算后得到的值為 567,則其應該由節點 1 執行,此時命令會進行轉向操作,將要執行的命令流轉到節點 1 上去執行。

集群節點同步:集群中每個主節點都會定時發送信息到其他主節點進行同步。

如果其他主節點在規定時間內響應了發送消息的主節點,則發送消息的主節點認為響應了消息的主節點正常,反之則認為響應消息的主節點疑似下線,則發送消息的主節點在其節點上將其標記“疑似下線”。

當集群中超過一半以上的節點認為某個主節點被標記為“疑似下線”,則其中某個主節點將疑似下線節點標記為下線狀態,并向集群廣播一條下線消息。

當下線節點對應的從節點接收到該消息時,則從從節點中選舉出一個節點作為主節點繼續對外提供服務。

Redis 為什么變慢了

業務場景中,不知道大家是否碰到過 Redis 變慢的情況:

  • 執行 SET、DEL 命令耗時也很久
  • 偶現卡頓,之后又恢復正常了
  • 在某個時間點,突然開始變慢了

原因分析:查看慢查詢,由于筆者本身機器沒有慢查詢,所以這里看到是空(實在尷尬,這里沒有可用的例子~~)

  • 由于 Redis 在 IO 操作和對鍵值對的操作是單線程的,所以直接在客戶端 Redis-cli 上執行的 Redis 命令有可能會導致操作延遲變大。
  • 使用復雜的命令會讓 Redis的處理變慢,以及CPU過高,例如 SORT、SUNION、ZUNIONSTORE 聚合類命令(時間負責度O(N) )。
  • 查詢的數據量過大,使得更多時間花費在數據協議的組裝和網絡傳輸過程中。
  • 大 key 查詢,比如對于一個很大的 hash、zset 等,這樣的對象對 Redis 的集群數據遷移帶來了很大的問題,因為在集群環境下,如果某個 key 太大,會導致數據遷移卡頓。
  • 另外在內存分配上,如果一個 key 太大,那么當它需要擴容時,會一次性申請更大的一塊內存,這也會導致卡頓。如果這個大 key 被刪除,內存會一次性回收,卡頓現象會再一次產生。
  • 集中過期,變慢的時間統一,所以業務中的 Key 過期時間盡量在統一的一個時間點加上一個隨機數時間。
  • 內存使用達到上限,當內存達到內存上限的時候,就不許淘汰一些數據,這個時候也可能導致 Redis 查詢效率低。
  • 碎片整理,Redis 在 4.0 版本后會自動整理碎片(由于內存回收過程中存在大量的碎片空間,不整理會導致 Redis 的空間少量浪費),而在整理碎片的過程中會消耗 CPU 的資源,從而影響了請求得到性能。
  • 網絡帶寬,Redis 集群和業務混部,或者并發量過大以及每次返回的數據也很大,網卡帶寬跑滿的情況容易導致網絡阻塞。
  • AOF 的頻率過高,由于 AOF 需要將全部的寫命令同步,如果同步的間隔比較短,也會影響到 Redis 的性能。
  • Redis 提供了 flushdb 和 flushall 指令,用來清空數據庫,這也是導致 Redis 緩慢的操作。

Redis 安全

默認會監聽 6379 端口,最好在 Redis 的配置文件中指定監聽的 IP 地址,更進一步還可以增加 Redis 的 ACL 訪問控制,對客戶指定群組,并限限制用戶對數據的讀寫權限。

訪問 Redis 盡量走公司代理,由于 Redis 本身不支持 SSL 的鏈接,所以走公司代理可以保證安全。客戶端登陸 Redis 必須設置 Auth 秘密登陸。

作者:何永康,騰訊 CSIG 后臺研發工程師

編輯:陶家龍

出處:轉載自公眾號云加社區(ID:QcloudCommunity)

 

責任編輯:武曉燕 來源: 云加社區
相關推薦

2021-06-18 11:46:18

華為云

2023-11-01 11:27:42

ping命令網絡

2024-05-28 11:44:54

Redis數據結構數據庫

2022-06-01 14:09:36

Microsoft零日漏洞PowerShell

2025-06-30 01:55:00

2016-08-29 17:28:53

JavascriptHtmlThis

2010-06-02 13:24:02

SVN用法

2025-07-02 07:05:00

多線程Java開發

2010-08-12 09:25:35

Flex控件

2010-07-23 14:12:14

Perl Hash

2010-07-26 14:45:17

Perl Hash

2022-07-26 09:16:51

Python分支語句

2024-07-29 13:50:58

Linuxdig命令

2013-01-07 10:14:06

JavaJava枚舉

2021-02-01 11:01:18

Bash腳本Linux

2021-06-07 13:02:31

Shell腳本Linux

2024-06-14 07:47:37

2024-11-11 10:58:03

Spring接口編程

2010-07-28 10:38:29

Flex開源框架

2011-10-08 15:49:52

Java
點贊
收藏

51CTO技術棧公眾號

免费91在线视频| 午夜久久久久久| 国产成人精品综合久久久| 亚洲综合网在线观看| 在线免费看h| 国产亚洲综合av| 国产日本欧美在线观看| 国产美女福利视频| 成人影院中文字幕| 午夜国产不卡在线观看视频| 精品日韩欧美| 日本三级一区二区三区| 97久久视频| 精品国产一区二区三区忘忧草| 日韩国产欧美亚洲| 性xxxx搡xxxxx搡欧美| 日本欧美一区二区| 久久国产加勒比精品无码| 亚洲911精品成人18网站| www.超碰在线| 国产女人18毛片水真多成人如厕| 国产欧美日韩丝袜精品一区| √天堂中文官网8在线| 2020国产精品极品色在线观看| 欧美日韩国产影院| 自拍偷拍亚洲色图欧美| 无码国产精品96久久久久| 青娱乐精品视频在线| 色综合久久久888| 91成年人网站| 日韩在线精品强乱中文字幕| 日韩欧美精品网址| 中文字幕免费高| 日本一本草久在线中文| 日韩成人免费电影| 欧美寡妇偷汉性猛交| 五级黄高潮片90分钟视频| 亚洲人成777| 午夜a成v人精品| 在线看视频不卡| 久青青在线观看视频国产| 国产福利91精品一区| 国产精品扒开腿做| 日本熟女一区二区| 中文字幕免费一区二区| 国产亚洲a∨片在线观看| 欧美成人精品一区二区综合免费| 巨大黑人极品videos精品| 欧美日韩亚洲精品一区二区三区| 无码人妻精品一区二区三区99v| 蜜桃免费在线| 国产综合成人久久大片91| 日本精品视频在线观看| 国产亚洲色婷婷久久99精品| 天天射天天综合网| 亚洲性生活视频在线观看| 无码任你躁久久久久久老妇| 日韩一区网站| 91精品在线免费| 日本在线一二三区| 成人看片网页| 欧美日韩在线视频一区| 成人av在线不卡| 在线中文字幕电影| 亚洲女爱视频在线| 久久久成人精品一区二区三区| 高清美女视频一区| 久久综合一区二区| 久久国产精品免费一区| 日韩一级中文字幕| 成人精品免费看| 国产另类自拍| 男人天堂综合网| 播五月开心婷婷综合| 国产精品免费一区二区| 丰满少妇被猛烈进入| 粉嫩av一区二区三区| 成人18视频| 熟妇人妻中文av无码| 不卡的av网站| 欧美xxxx黑人又粗又长密月| 亚洲欧美日韩免费| 久久久久久久精| 日韩视频专区| 欧美伦理影视网| 国产日韩三级在线| 四虎永久在线精品免费一区二区| 成人好色电影| 亚洲欧美偷拍另类a∨色屁股| 一本久道久久综合狠狠爱亚洲精品| av中文字幕一区二区三区| 中文字幕一区二区三| 亚洲成人网上| a天堂中文在线官网在线| 一区二区三区 在线观看视频| 男人草女人视频| bbw在线视频| 色综合天天狠狠| 热久久精品免费视频| 国产成人毛片| 欧美日韩一区成人| 国产精品99久久久精品无码| 欧美绝顶高潮抽搐喷水合集| 亚洲欧美日韩中文在线制服| 少妇高潮一区二区三区喷水| 欧美在线三级| 57pao精品| 日韩黄色一级视频| 高清不卡在线观看av| 欧美色图亚洲自拍| 国产盗摄在线视频网站| 精品视频1区2区| 亚洲自拍偷拍一区二区 | 亚洲国产高潮在线观看| 亚洲综合第一区| 国产精品五区| 国产91视觉| 国产高清一区二区三区视频| 91久久国产最好的精华液| 中文字幕制服丝袜| 91精品综合久久久久久久久久久| 欧洲成人免费aa| 国精品人妻无码一区二区三区喝尿 | 亚洲japanese制服美女| 免费在线超碰| 午夜久久电影网| 中文字幕制服丝袜| 欧美黄污视频| 91在线观看免费观看| www.久久热.com| 黑人巨大精品欧美一区免费视频| 野花视频免费在线观看| 91精品啪在线观看国产18| 国产精品精品久久久久久| 亚洲欧洲综合在线| 精品国产91久久久| 91丝袜在线观看| 韩国在线视频一区| 99re视频| 色老头在线观看| 日韩三级免费观看| 特一级黄色录像| 精品一区二区三区香蕉蜜桃| 先锋在线资源一区二区三区| 激情开心成人网| 亚洲欧美资源在线| 精品人妻一区二区三区潮喷在线 | 这里只有精品视频在线观看| 毛片久久久久久| 久久精品久久99精品久久| 偷拍视频一区二区| 成人在线观看免费视频| 少妇精69xxtheporn| 中文字幕人成人乱码亚洲电影| 国产亚洲一区字幕| av网站在线不卡| 91一区二区| 91亚洲精品在线| av免费在线网站| 精品久久一二三区| 国产微拍精品一区| 久久久久久久性| 日本在线观看免费视频| 91综合在线| julia一区二区中文久久94| 蜜乳av一区| 亚洲黄页网在线观看| 欧美性猛交bbbbb精品| 国产日韩av一区二区| 午夜激情av在线| 欧美激情一级片一区二区| 高清一区二区三区视频| 正在播放日韩精品| 国产亚洲视频在线| 国产一区二区三区四区视频| 亚洲狠狠丁香婷婷综合久久久| 韩国黄色一级片| 欧美一级专区| 亚洲综合欧美日韩| 9l视频自拍九色9l视频成人| 日本高清+成人网在线观看| 日本韩国在线视频爽| 日韩欧美一二三| 在线能看的av| 国产清纯在线一区二区www| 国产原创精品在线| 国语自产精品视频在线看8查询8| 欧美日韩国产三区| 国语精品视频| 欧美制服第一页| 黄色小网站在线观看| 亚洲国产成人精品女人久久久| 99re这里只有精品在线| 亚洲精品国产品国语在线app| 亚洲精品理论片| 国产一区在线不卡| 激情综合网婷婷| 欧美黄色免费| 亚洲激情电影在线| 欧美激情15p| 91黄在线观看| 日本精品在线中文字幕| 欧美精品福利在线| av在线播放网站| 亚洲国产日韩欧美综合久久| 在线播放亚洲精品| 红桃视频成人在线观看| 综合五月激情网| 国产欧美日韩在线观看| xxxxxx黄色| 国产美女在线观看一区| 久久久久久久久久久久久国产精品| 亚洲精彩视频| 先锋影音日韩| 激情综合网站| 精品免费日产一区一区三区免费| 成人污版视频| 国产精品视频xxxx| 中文字幕在线视频久| 欧美丰满片xxx777| 黄色片网站在线观看| 国产一区二区三区在线观看视频| 免费观看毛片网站| 日韩一卡二卡三卡四卡| 在线视频免费观看一区| 91精品福利视频| 国产欧美日韩另类| 亚洲国产精品久久不卡毛片 | 国产欧美成人| 精品视频在线观看一区二区| 99久久婷婷| 亚洲精品无人区| 精品久久久久久久| 欧美日韩成人一区二区三区 | 亚洲欧美国产精品专区久久| 蜜桃视频污在线观看| 日韩欧美一区二区免费| 国产女人18毛片18精品| 欧美三级在线看| www.五月婷婷.com| 91豆麻精品91久久久久久| 天堂网中文字幕| 欧美午夜电影在线| 久久久久久久久影院| 欧美午夜性色大片在线观看| 看片网址国产福利av中文字幕| 亚洲成人综合视频| 日韩av在线天堂| 天天爽夜夜爽夜夜爽精品视频| 国产无套粉嫩白浆内谢| 亚洲国产美国国产综合一区二区| 久久久精品国产sm调教| 亚洲午夜久久久久久久久电影网 | 91国产福利在线| 婷婷激情五月综合| 欧美三级欧美一级| 国产精品久久久久久久免费| 欧美一区二区在线视频| 精品国产无码AV| 亚洲精品成人久久电影| 四虎在线视频| 中文字幕亚洲欧美日韩高清| 秋霞a级毛片在线看| 久久福利网址导航| sm捆绑调教国产免费网站在线观看| 韩国福利视频一区| 激情亚洲影院在线观看| 国产精品视频自在线| 精品视频在线播放一区二区三区 | 国产午夜视频在线观看| 亚洲性av在线| www在线观看播放免费视频日本| 欧美国产日本在线| 自拍偷拍欧美视频| 国产中文字幕亚洲| 大型av综合网站| 欧美日韩天天操| 91精品推荐| 日韩少妇内射免费播放18禁裸乳| 日韩在线一二三区| 伊人五月天婷婷| 91丨九色丨蝌蚪丨老版| 午夜成人亚洲理伦片在线观看| 一区二区欧美视频| 无码人妻精品一区二| 日韩一区二区三免费高清| 凸凹人妻人人澡人人添| 色综合伊人色综合网站| 91超碰在线| 成人精品视频99在线观看免费| 91国内精品| 午夜精品视频在线观看一区二区| 你懂的国产精品| 欧美精品第三页| 国产高清不卡二三区| 国产一级久久久久毛片精品| 一区二区三区中文字幕在线观看| youjizz在线视频| 日韩欧美国产午夜精品| 激情在线视频| 久久久久久久久国产精品| 成人日韩精品| 国产精品区一区二区三在线播放| 四季av一区二区凹凸精品| 国产精品无码一区二区在线| 精品一区二区av| 受虐m奴xxx在线观看| 亚洲国产人成综合网站| 国产精品伊人久久 | 手机看片福利视频| 亚洲国产cao| 精品国产一级片| 少妇久久久久久| 成人va天堂| 久久av免费观看| 伊人精品成人久久综合软件| 欧美激情第3页| 国产午夜精品在线观看| 国产精品99精品| 欧美一区二区三区日韩视频| 成人在线播放视频| 欧美中文字幕在线播放| 成人免费直播在线| 成年人深夜视频| 国产专区欧美精品| 成人黄色短视频| 在线免费观看日韩欧美| 色在线免费视频| 欧美亚洲第一区| 天美av一区二区三区久久| 欧美狂野激情性xxxx在线观| 美美哒免费高清在线观看视频一区二区 | 日本网站在线看| 亚洲欧美自拍偷拍色图| 亚洲永久精品视频| 深夜福利91大全| 黄色成人小视频| 亚洲精品在线免费| 日韩二区三区四区| 中文字幕免费在线看线人动作大片| 欧美日韩中文字幕综合视频| 日韩亚洲视频在线观看| 奇米4444一区二区三区 | 亚洲一区二区久久久| 竹内纱里奈兽皇系列在线观看| 黑人另类av| 销魂美女一区二区三区视频在线| 91玉足脚交白嫩脚丫| 午夜激情一区二区| 性xxxx18| 国产精品国产三级国产专播精品人| 久久av综合| 91人人澡人人爽人人精品| 国产精品午夜免费| 一卡二卡在线视频| 美女av一区二区三区 | 欧美性xxxx69| 日韩激情视频网站| 亚洲 欧美 国产 另类| 91精品啪在线观看国产60岁| a级片国产精品自在拍在线播放| 97超碰人人模人人爽人人看| 国产精品v亚洲精品v日韩精品| 性欧美18—19sex性高清| 欧美日韩在线一区| 69视频在线观看| 亚洲最大福利视频| 在线成人av| 丁香花五月婷婷| 欧美一区二区三区免费在线看| 午夜伦理在线视频| 精品无人乱码一区二区三区的优势| 美女久久一区| 三级av在线免费观看| 亚洲成人xxx| 四虎4545www精品视频| 天天操天天干天天玩| 91首页免费视频| 亚洲一级在线播放| 久久久久久九九九| 国产成人精品一区二区免费看京 | 国产aⅴ爽av久久久久成人| 久久久久一本一区二区青青蜜月| 久久99国内| 手机在线免费毛片| 亚洲一区二区3| aaa日本高清在线播放免费观看| 91在线观看欧美日韩| 久久av在线| 老妇女50岁三级| 亚洲欧洲中文天堂| 日韩av综合| 欧美伦理片在线看| 亚洲一区在线观看免费观看电影高清| 日韩偷拍自拍| 成人在线免费网站| 欧美aaaaa成人免费观看视频| 久久99久久久| 色伦专区97中文字幕| 九九热播视频在线精品6|