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

Redis高頻面試題總結(jié)

開發(fā) 前端 Redis
通過面試多家大型互聯(lián)網(wǎng)企業(yè),總結(jié)了如下的高頻面試題目,包括:redis 過期鍵的刪除策略;Redus的淘汰策略等等。

通過面試多家大型互聯(lián)網(wǎng)企業(yè),總結(jié)了如下的高頻面試題目:

1、redis 過期鍵的刪除策略?

  • 定時(shí)刪除:在設(shè)置鍵的過期時(shí)間的同時(shí),創(chuàng)建一個(gè)定時(shí)器 timer). 讓定時(shí)器在鍵 的過期時(shí)間來臨時(shí),立即執(zhí)行對(duì)鍵的刪除操作。
  • 惰性刪除:放任鍵過期不管,但是每次從鍵空間中獲取鍵時(shí),都檢查取得的鍵是 否過期,如果過期的話,就刪除該鍵;如果沒有過期,就返回該鍵。
  • 定期刪除:每隔一段時(shí)間程序就對(duì)數(shù)據(jù)庫進(jìn)行一次檢查,刪除里面的過期鍵

2、Redus的淘汰策略

redis 內(nèi)存數(shù)據(jù)集大小上升到一定大小的時(shí)候,就會(huì)施行 數(shù)據(jù)淘汰策略 。redis 提供6種數(shù)據(jù)淘汰策略:

通過淘汰策略也能保證Redis中緩存的都是熱點(diǎn)數(shù)據(jù)。

一個(gè)客戶端運(yùn)行了新的命令,添加了新的數(shù)據(jù)。Redi 檢查內(nèi)存使用情況,如果大于 maxmemory 的限制, 則根據(jù)設(shè)定好的策略進(jìn)行回收。

注意這里的 6 種機(jī)制,volatile 和 allkeys 規(guī)定了是對(duì)已設(shè)置過期時(shí)間的數(shù)據(jù)集淘汰數(shù)據(jù)還是從全部數(shù)據(jù)集淘汰數(shù)據(jù),后面的 lru、ttl 以及 random 是三種不同的淘汰策略,再加上一種 no-enviction 永不回收的策略。

使用策略規(guī)則:如果數(shù)據(jù)呈現(xiàn)冪律分布,也就是一部分?jǐn)?shù)據(jù)訪問頻率高,一部分?jǐn)?shù)據(jù)訪問頻率低,則使用 allkeys-lru;如果數(shù)據(jù)呈現(xiàn)平等分布,也就是所有的數(shù)據(jù)訪問頻率都相同,則使用

  1. allkeys-random 

3、Redis分布式鎖的實(shí)現(xiàn)

Redis的分布式緩存特性使其成為了分布式鎖的一種基礎(chǔ)實(shí)現(xiàn)。通過Redis中是否存在某個(gè)鎖ID,則可以判斷是否上鎖。為了保證判斷鎖是否存在的原子性,保證只有一個(gè)線程獲取同一把鎖,Redis有 SETNX (即SET if Note Exists)和 GETSET (先寫新值,返回舊值,原子性操作,可以用于分辨是不是首次操作)操作。

(1)關(guān)于setnx:

  • 將 key 的值設(shè)為 value ,當(dāng)且僅當(dāng) key 不存在,返回值為1。
  • 若給定的 key 已經(jīng)存在,則setnx不做任何動(dòng)作,返回值為0。

(2)關(guān)于set:一般操作

  • ex seconds - seconds:設(shè)置失效時(shí)長(zhǎng),單位秒
  • px - milliseconds:設(shè)置失效時(shí)長(zhǎng),單位毫秒
  • nx - key不存在時(shí)設(shè)置value,成功返回OK,失敗返回(nil)
  • xx - key存在時(shí)設(shè)置value,成功返回OK,失敗返回(nil)

為了防止主機(jī)宕機(jī)或網(wǎng)絡(luò)斷開之后的死鎖,Redis沒有ZK那種天然的實(shí)現(xiàn)方式,只能依賴設(shè)置超時(shí)時(shí)間來規(guī)避。所以如果使用setnx來實(shí)現(xiàn)分布式鎖,則實(shí)現(xiàn)步驟如下:

  • 先拿 setnx 來爭(zhēng)搶鎖,搶到之后,再用 expire 給鎖加一個(gè)過期時(shí)間防止鎖忘記了釋放。
  • 如果在 setnx 之后,執(zhí)行 expire 之前進(jìn)程意外 crash 或重啟維護(hù), 那么就需要把 setnx 和 expire 合成一條指令來用。

Redis 的 setnx 命令是當(dāng) key 不存在時(shí)設(shè)置 key ,但 setnx 不能同時(shí)完成 expire 設(shè)置失效時(shí)長(zhǎng),不能保證 setnx 和 expire 的原子性。我們可以使用 set 命令完成 setnx 和 expire 的操作,并且這種操作是原子操作。舉個(gè)例子如下:

 

  1. 案例:設(shè)置name=p7+,失效時(shí)長(zhǎng)100s,不存在時(shí)設(shè)置 
  2. 1.1.1.1:6379> set name p7+ ex 100 nx 
  3. OK 
  4. 1.1.1.1:6379> get name 
  5. "p7+" 
  6. 1.1.1.1:6379> ttl name 
  7. (integer) 94 

從上面可以看出,多個(gè)命令放在同一個(gè) redis 連接中并且 redis 是單線程的,因此上面的操作可以看成 setnx 和 expire 的結(jié)合體,是原子性的。

4、Redis的Reactor模式

Redis基于Reactor模式開發(fā)了網(wǎng)絡(luò)事件處理器,這個(gè)處理器被稱為文件事件處理器。它的組成結(jié)構(gòu)為4部分:多個(gè)套接字、IO多路復(fù)用程序、文件事件分派器、事件處理器。

因?yàn)槲募录峙善麝?duì)列的消費(fèi)是單線程的,所以Redis才叫單線程模型。

5、redis支持事務(wù)回滾嗎?

“ 不支持回滾動(dòng)作,redis是支持簡(jiǎn)單事務(wù)模式,只能discard,不能rollback ”

Redis在執(zhí)行事務(wù)命令的時(shí)候,在命令入隊(duì)的時(shí)候, Redis 就會(huì)檢測(cè)事務(wù)的命令是否正確,如果不正確則會(huì)產(chǎn)生錯(cuò)誤。無論之前和之后的命令都會(huì)被事務(wù)所回滾,就變?yōu)槭裁炊紱]有執(zhí)行。

當(dāng)命令格式正確,而因?yàn)椴僮鲾?shù)據(jù)結(jié)構(gòu)引起的錯(cuò)誤 ,則該命令執(zhí)行出現(xiàn)錯(cuò)誤,而其之前和之后的命令都會(huì)被正常執(zhí)行。這點(diǎn)和數(shù)據(jù)庫很不一樣,這是需注意的地方。

對(duì)于一些重要的操作,我們必須通過程序去檢測(cè)數(shù)據(jù)的正確性,以保證 Redis 事務(wù)的正確執(zhí)行,避免出現(xiàn)數(shù)據(jù)不一致的情況。 Redis 之所以保持這樣簡(jiǎn)易的事務(wù),完全是為了保證移動(dòng)互聯(lián)網(wǎng)的核心問題一性能。

6、Redis的事務(wù)機(jī)制及CAS

watch指令在redis事物中提供了CAS的行為。為了檢測(cè)被watch的keys在是否有多個(gè)clients同時(shí)改變引起沖突,這些keys將會(huì)被監(jiān)控。如果至少有一個(gè)被監(jiān)控的key在執(zhí)行exec命令前被修改,整個(gè)事物將會(huì)回滾,不執(zhí)行任何動(dòng)作,從而保證原子性操作,并且執(zhí)行exec會(huì)得到null的回復(fù)。

7、Redis和Memcached的區(qū)別

Redis的特性:

  • 速度快,因?yàn)閿?shù)據(jù)存在內(nèi)存中,類似于HashMap,HashMap的優(yōu)勢(shì)就是查找和操作的時(shí)間復(fù)雜度都是O(1)
  • 支持豐富數(shù)據(jù)類型,支持字符串、鏈表、哈希、集合和有序集合
  • 支持事務(wù),操作都是原子性,所謂的原子性就是對(duì)數(shù)據(jù)的更改要么全部執(zhí)行,要么全部不執(zhí)行
  • 豐富的特性:可用于緩存,消息,按key設(shè)置過期時(shí)間,過期后將會(huì)自動(dòng)刪除

與Memcached的區(qū)別在于:

  • 存儲(chǔ)方式 Memecache把數(shù)據(jù)全部存在內(nèi)存之中,斷電后會(huì)掛掉,數(shù)據(jù)不能超過內(nèi)存大小。Redis有部分存在硬盤上,這樣能保證數(shù)據(jù)的持久性。
  • 數(shù)據(jù)支持類型 Memcache對(duì)數(shù)據(jù)類型支持相對(duì)簡(jiǎn)單。Redis有復(fù)雜的數(shù)據(jù)類型。
  • 使用底層模型不同 它們之間底層實(shí)現(xiàn)方式 以及與客戶端之間通信的應(yīng)用協(xié)議不一樣。

Redis直接自己構(gòu)建了VM(Virtual Memory)機(jī)制 ,因?yàn)橐话愕南到y(tǒng)調(diào)用系統(tǒng)函數(shù)的話(例如java調(diào)用自己的API),會(huì)浪費(fèi)一定的時(shí)間去移動(dòng)和請(qǐng)求。

8、緩存穿透、緩存擊穿和緩存雪崩

(1)緩存穿透

查詢不存在的數(shù)據(jù),緩存中沒有數(shù)據(jù),數(shù)據(jù)庫也沒有數(shù)據(jù)。因此所有的請(qǐng)求都訪問到了數(shù)據(jù)庫,給數(shù)據(jù)庫造成了壓力。解決方法如下:

采用布隆過濾器,將所有可能存在的數(shù)據(jù),哈希到一個(gè)很大的 bitmap 中,一個(gè)一定不存在的數(shù)據(jù)會(huì)被 bitmap 攔截調(diào),從而避免了對(duì)數(shù)據(jù)庫的查詢壓力。

如果查詢的數(shù)據(jù)為空,那么直接將空數(shù)據(jù)也緩存起來并設(shè)置較短的過期時(shí)間。這樣下次訪問的時(shí)候,就直接返回空值。

(2)緩存擊穿

緩存擊穿是指緩存過期之后,瞬時(shí)間并發(fā)客戶端特別多查詢同一條數(shù)據(jù)的情況下,導(dǎo)致數(shù)據(jù)庫壓力過大。業(yè)界比較常用的做法,是使用mutex。簡(jiǎn)單地來說,就是在緩存失效的時(shí)候(判斷拿出來的值為空),不是立即去load db,

而是先使用緩存工具的某些帶成功操作返回值的操作(比如Redis的SETNX或者M(jìn)emcache的ADD)去set一個(gè)mutex key,當(dāng)操作返回成功時(shí),

再進(jìn)行l(wèi)oad db的操作并回設(shè)緩存;否則,就重試整個(gè)get緩存的方法。類似下面的代碼:

 

  1. public String get(String key) { 
  2.     String value = redis.get(key); 
  3.     if (value == null) { // 代表緩存值過期 
  4.         // 設(shè)置3min的超時(shí),防止del操作失敗的時(shí)候,下次緩存過期一直不能load db 
  5.         if (redis.setnx(key_mutex, 1, 3 * 60) == 1) { // 代表設(shè)置成功 
  6.             value = db.get(key); 
  7.             redis.set(key, value, expire_secs); 
  8.             redis.del(key_mutex); 
  9.         } 
  10.         // 這個(gè)時(shí)候代表同時(shí)候的其他線程已經(jīng)load db并回設(shè)到緩存了, 
  11.         // 這時(shí)候重試獲取緩存值即可 
  12.         else { 
  13.             sleep(50); 
  14.             get(key); // 重試 
  15.         } 
  16.     } else { 
  17.         return value; 
  18.     } 

(3)緩存雪崩

雪崩就是指緩存中大批量熱點(diǎn)數(shù)據(jù)過期后系統(tǒng)涌入大量查詢請(qǐng)求,因?yàn)榇蟛糠謹(jǐn)?shù)據(jù)在Redis層已經(jīng)失效,請(qǐng)求滲透到數(shù)據(jù)庫層,大批量請(qǐng)求猶如洪水一般涌入,引起數(shù)據(jù)庫壓力造成查詢堵塞甚至宕機(jī)。

解決辦法:

將緩存失效時(shí)間分散開,比如每個(gè)key的過期時(shí)間是隨機(jī),防止同一時(shí)間大量數(shù)據(jù)過期現(xiàn)象發(fā)生,這樣不會(huì)出現(xiàn)同一時(shí)間全部請(qǐng)求都落在數(shù)據(jù)庫層,如果緩存數(shù)據(jù)庫是分布式部署,將熱點(diǎn)數(shù)據(jù)均勻分布在不同Redis和數(shù)據(jù)庫中,有效分擔(dān)壓力,別一個(gè)人扛。

讓Redis數(shù)據(jù)永不過期(如果業(yè)務(wù)準(zhǔn)許)。

9、Redis數(shù)據(jù)傾斜

1、存在bigkey:業(yè)務(wù)層避免創(chuàng)建bigkey,把集合類型的bigkey拆分成多個(gè)小集合,分散保存bigkey 保存了大量集合元素(集合類型),會(huì)導(dǎo)致這個(gè)實(shí)例的數(shù)據(jù)量增加,內(nèi)存資源消耗也相應(yīng)增加。bigkey 的操作一般都會(huì)造成實(shí)例 IO 線程阻塞,如果 bigkey 的訪問量比較大,就會(huì)影響到這個(gè)實(shí)例上的其它請(qǐng)求被處理的速度。

2、slot手工分配不均勻:避免把較多的slot分配到一個(gè)實(shí)例上,進(jìn)行槽的遷移

3、存在熱點(diǎn)數(shù)據(jù):采用帶有不同key前綴的多副本方法。 我們把熱點(diǎn)數(shù)據(jù)復(fù)制多份,在每一個(gè)數(shù)據(jù)副本的 key 中增加一個(gè)隨機(jī)前綴,讓它和其它副本數(shù)據(jù)不會(huì)被映射到同一個(gè) Slot 中。這樣一來, 熱點(diǎn)數(shù)據(jù)既有多個(gè)副本可以同時(shí)服務(wù)請(qǐng)求,同時(shí),這些副本數(shù)據(jù)的 key 又不一樣,會(huì)被映射到不同的 Slot 中。在給這些 Slot 分配實(shí)例時(shí), 我們也要注意把它們分配到不同的實(shí)例上,那么,熱點(diǎn)數(shù)據(jù)的訪問壓力就被分散到不同的實(shí)例上了。 熱點(diǎn)數(shù)據(jù)多副本方法只能針對(duì)只讀的熱點(diǎn)數(shù)據(jù)。如果熱點(diǎn)數(shù)據(jù)是有讀有寫的話,就不適合采用多副本方法了,因?yàn)橐WC多副本間的數(shù)據(jù)一致性,會(huì)帶來額外的開銷。

10、為什么Redis單線程模型也能效率這么高?

  • 純內(nèi)存操作;
  • 核心是基于非阻塞的IO多路復(fù)用機(jī)制;
  • 底層使用C語言實(shí)現(xiàn),一般來說,C 語言實(shí)現(xiàn)的程序"距離"操作系統(tǒng)更近,執(zhí)行速度相對(duì)會(huì)更快;
  • 單線程同時(shí)也避免了多線程的上下文頻繁切換問題,預(yù)防了多線程可能產(chǎn)生的競(jìng)爭(zhēng)問題。

11、Redis做異步和延時(shí)隊(duì)列?

一般使用 list 結(jié)構(gòu)作為隊(duì)列,rpush 生產(chǎn)消息,lpop 消費(fèi)消息。當(dāng) lpop 沒有消息的時(shí)候,要適當(dāng) sleep 一會(huì)再重試。如果對(duì)方追問可不可以不用 sleep 呢?list 還有個(gè)指令叫 blpop,在沒有消息的時(shí)候,它會(huì)阻塞住直到消息到來。如果對(duì) 方追問能不能生產(chǎn)一次消費(fèi)多次呢?使用 pub/sub 主題訂閱者模式,可以實(shí)現(xiàn) 1:N 的消息隊(duì)列。

使用 zset(有序集合),拿時(shí)間戳作為score,消息內(nèi)容作為 key 調(diào)用 zadd 來生產(chǎn)消息,消費(fèi)者用 zrangebyscore 指令獲取 N 秒之前的數(shù)據(jù)輪詢進(jìn)行處理。

12、Redis的集群策略

(1)Redis主從同步Redis的主從結(jié)構(gòu)一主一從,一主多從或級(jí)聯(lián)結(jié)構(gòu),復(fù)制類型可以根據(jù)是否是全量而分為全量同步和增量同步。

(2)Redis哨兵 在主從復(fù)制實(shí)現(xiàn)之后,如果想對(duì)master進(jìn)行監(jiān)控,Redis提供了一種哨兵機(jī)制,哨兵的含義就是監(jiān)控Redis系統(tǒng)的運(yùn)行狀態(tài),并做相應(yīng)的響應(yīng)。Redis Sentinal 著眼于高可用,在 master 宕機(jī)時(shí)會(huì)自動(dòng)將 slave 提升為master,繼續(xù)提供服務(wù)。

(3)Redis Cluster 著眼于擴(kuò)展性,在單個(gè) redis 內(nèi)存不足時(shí),使用 Cluster 進(jìn)行分片存儲(chǔ)。在redis-cluster架構(gòu)中,redis-master節(jié)點(diǎn)一般用于接收讀寫,而redis-slave節(jié)點(diǎn)則一般只用于備份,其與對(duì)應(yīng)的master擁有相同的slot集合,若某個(gè)redis-master意外失效,則再將其對(duì)應(yīng)的slave進(jìn)行升級(jí)為臨時(shí)redis-master。

13、 Redis 的同步機(jī)制

Redis 可以使用主從同步,從從同步。第一次同步時(shí),主節(jié)點(diǎn)做一次 bgsave,并同時(shí)將后續(xù)修改操作記錄到內(nèi)存 buffer,待完成后將 rdb 文件全量同步到復(fù)制節(jié)點(diǎn),復(fù)制節(jié)點(diǎn)接受完成后將 rdb 鏡像加載到內(nèi)存。加載完成后,再通知主節(jié)點(diǎn)

將期間修改的操作記錄同步到復(fù)制節(jié)點(diǎn)進(jìn)行重放就完成了同步過程。

責(zé)任編輯:未麗燕 來源: 博客園精華區(qū)
相關(guān)推薦

2019-12-26 09:52:33

Redis集群線程

2021-01-22 11:58:30

MySQL數(shù)據(jù)庫開發(fā)

2021-08-05 05:04:50

熱部署模型字節(jié)

2022-08-22 18:57:29

React前端面試

2019-11-26 10:30:11

CSS前端面試題

2020-08-31 12:20:07

Python面試題代碼

2020-03-03 17:47:07

UDP TCP面試題

2024-04-28 08:23:18

2024-04-15 08:34:43

2016-03-03 10:07:39

ios內(nèi)存管理面試總結(jié)

2022-04-15 09:23:29

Kubernetes面試題

2021-12-08 11:18:21

Spring Bean面試題生命周期

2020-06-04 14:40:40

面試題Vue前端

2009-08-28 09:29:02

2023-11-13 07:37:36

JS面試題線程

2011-03-24 13:27:37

SQL

2025-08-19 09:28:53

2025-03-11 06:28:21

2009-09-08 17:50:01

2024-07-24 08:38:07

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

日韩国产网站| 国产在线高清| 精品1区2区3区4区| 精品夜色国产国偷在线| 91极品尤物在线播放国产| 国产激情视频在线观看| aaa亚洲精品| 国产日韩一区在线| 国产福利久久久| 欧美日韩水蜜桃| 精品久久久久久久久久久院品网| 18岁网站在线观看| 麻豆最新免费在线视频| 99久久婷婷国产综合精品| 国产精品久久97| 国产精品日日夜夜| 久久美女视频| 日韩国产在线播放| 亚洲欧美一区二区三区不卡| 深夜成人在线| 一区二区三区免费在线观看| 日本一区二区三区视频免费看| 亚洲第一成人av| 日韩vs国产vs欧美| 国内精品久久久久伊人av| 国产精品1区2区3区4区| 久久久久97| 日韩片之四级片| 免费看国产黄色片| 中文字幕高清在线播放| 一区二区三区国产| 在线丝袜欧美日韩制服| 欧美欧美欧美| 99精品一区二区三区| 亚洲a一级视频| 一级特黄特色的免费大片视频| 日韩视频免费| 久久久免费观看| 九九视频免费看| 亚州av乱码久久精品蜜桃| 一本一本久久a久久精品牛牛影视 一本色道久久综合亚洲精品小说 一本色道久久综合狠狠躁篇怎么玩 | 欧美三级电影网| 国产欧美在线一区| 高清在线视频不卡| 亚洲一区免费在线观看| 特级黄色录像片| 免费在线毛片网站| 国产精品乱码人人做人人爱| 日本视频精品一区| 青青操在线视频| 久久综合九色综合久久久精品综合| 高清国语自产拍免费一区二区三区| 国产精品九九九九| 国模娜娜一区二区三区| 国产日韩中文字幕| 国产精品亚洲lv粉色| 久久99久久99| 91久久精品美女| 国产伦精品一区二区三区视频痴汉| 日本欧美加勒比视频| 国产精品美女久久久久久免费| 成人免费毛片男人用品| 免费日韩av| 国产精品精品视频一区二区三区| 天天干天天操天天爱| 噜噜噜在线观看免费视频日韩| 57pao国产精品一区| 欧美a视频在线观看| 日本一区中文字幕| 成人国产精品免费视频| 国产叼嘿视频在线观看| 成人一区二区三区视频在线观看| 国产精品国产三级国产专区53| 欧美一级性视频| 久久青草欧美一区二区三区| 日韩欧美亚洲日产国产| 麻豆最新免费在线视频| 一级女性全黄久久生活片免费| 国产精品无码电影在线观看| 岛国av免费在线观看| 色婷婷综合久色| 亚洲一级免费观看| 久久99精品久久久野外观看| 精品乱人伦一区二区三区| 精品中文字幕在线播放| 红桃成人av在线播放| 超碰精品一区二区三区乱码| 精品处破女学生| 蜜桃av综合| 91免费视频国产| 免费看av毛片| 国产三级久久久| 天天干天天色天天爽| 91www在线| 欧美中文字幕一二三区视频| 久久久久久国产精品日本| 女同一区二区三区| 最新69国产成人精品视频免费| 曰本女人与公拘交酡| 麻豆精品网站| 91精品在线影院| 日韩电影在线观看完整版| 国产精品第13页| 免费看国产曰批40分钟| 视频欧美精品| 亚洲精品国产精品国自产在线 | 亚洲av毛片在线观看| 日韩在线你懂的| 久久精品一本久久99精品| 99热只有这里有精品| 国产精品一级片| 亚洲春色在线视频| 狠狠操一区二区三区| 欧美精品在线视频| 无码h肉动漫在线观看| 你懂的亚洲视频| 国产精品观看在线亚洲人成网 | 日韩av在线高清| 亚洲欧美精品aaaaaa片| 日韩成人午夜电影| 久久一区二区三区av| 天堂va在线| 欧美精品丝袜中出| x88av在线| 一本久道久久综合狠狠爱| 91视频最新| 麻豆视频在线观看免费| 91福利区一区二区三区| 给我免费观看片在线电影的| 欧美不卡在线| 91中文在线观看| 色综合久久影院| 欧美专区在线观看一区| 男女做爰猛烈刺激| 亚洲深爱激情| 国产伦精品一区| 美洲精品一卡2卡三卡4卡四卡| 欧美裸体一区二区三区| 谁有免费的黄色网址| 亚洲综合二区| 欧美人xxxxx| 欧美大片免费| 亚洲女人天堂网| 久久久久女人精品毛片九一| 99久久精品国产网站| 久艹视频在线免费观看| 97久久综合精品久久久综合| 欧美大奶子在线| 国产免费不卡视频| 亚洲精品福利视频网站| 奇米777在线| 欧美精品导航| 肥熟一91porny丨九色丨| 日日夜夜天天综合入口| 欧美videofree性高清杂交| 免看一级a毛片一片成人不卡| 国产精品18久久久久久久久| 男插女免费视频| 亚洲国产欧美国产第一区| 精品中文字幕在线观看| 性欧美18一19性猛交| 亚洲影院免费观看| 日韩无码精品一区二区| 亚洲综合三区| 亚洲免费在线精品一区| 亚洲一区二区三区久久久| 久久国产色av| 乱精品一区字幕二区| 色综合久久综合中文综合网| 亚洲精品一区二区三区影院忠贞| 免费成人美女在线观看.| 99re99热| 国产精品极品| 国产成人亚洲精品| 老司机在线永久免费观看| 欧美一区二区三区在线| 日干夜干天天干| 国产午夜三级一区二区三| 911福利视频| 在线欧美三区| 日本不卡在线观看| 精品精品视频| 欧洲s码亚洲m码精品一区| 色哟哟免费在线观看| 精品999在线播放| 国产精品sm调教免费专区| 亚洲欧美日韩国产成人精品影院| 在线精品视频播放| 三级一区在线视频先锋| 8x8x华人在线| 伊人久久大香线蕉无限次| 成人在线国产精品| 少妇视频一区| 美女视频黄免费的亚洲男人天堂| 青青草手机在线| 欧美一区二区免费视频| 国产性猛交╳xxx乱大交| 国产精品久久久久精k8| 中国一级特黄录像播放| 国产综合久久久久影院| 国产精品宾馆在线精品酒店| 亚洲精品91| 日本在线观看一区二区| 精品中文在线| 国产精品久久久久秋霞鲁丝| 金瓶狂野欧美性猛交xxxx| 在线观看欧美视频| 亚洲aaa在线观看| 欧美一区永久视频免费观看| 中文字字幕在线中文| 亚洲乱码中文字幕| 国产一区二区三区精品在线| 成人免费不卡视频| 三级网站免费看| 男女视频一区二区| 欧美牲交a欧美牲交| 欧美日韩国产在线一区| 亚洲一区二区三区欧美| 蜜桃视频欧美| 精品一区久久| 极品束缚调教一区二区网站| 91在线色戒在线| 国产69精品久久久久按摩| 欧美在线视频一区| 国产精品25p| 欧美激情欧美激情在线五月| 国产二区三区在线| 色天天综合狠狠色| 懂色av中文在线| 亚洲男人天堂2023| 手机看片福利永久| 精品国产人成亚洲区| 国产极品久久久| 91精品国产色综合久久不卡蜜臀| 国产美女www爽爽爽| 一本久道中文字幕精品亚洲嫩| 久久精品这里有| 亚洲最大色网站| 青青草偷拍视频| 亚洲制服欧美中文字幕中文字幕| 美国一级片在线观看| 国产精品另类一区| 久久久久99精品成人| 国产精品每日更新| 国产又色又爽又高潮免费| 中文字幕精品一区二区精品绿巨人| 爱爱免费小视频| 国产网站一区二区| 精品成人无码一区二区三区| 国产目拍亚洲精品99久久精品| www.av欧美| 中文久久乱码一区二区| 精品少妇一区二区三区密爱| 中文字幕一区二区不卡| 极品美妇后花庭翘臀娇吟小说| 综合久久久久综合| 国产女人18水真多毛片18精品| 亚洲欧美国产高清| 国产亚洲成人av| 精品久久在线播放| 黄瓜视频在线免费观看| 欧美视频一二三区| 国产精品高潮呻吟AV无码| 欧美一级在线观看| 少妇高潮一区二区三区69| 亚洲欧美变态国产另类| 在线视频自拍| 欧美丰满老妇厨房牲生活| 免费看男女www网站入口在线 | **国产精品| 成人18视频| 欧美大奶一区二区| 日韩精品不卡| 久久久久久久久丰满| 无码人妻少妇伦在线电影| 久久精品女人| 久久6免费视频| 成人av电影在线观看| 美女被到爽高潮视频| 亚洲色图欧美在线| 精品91久久久| 欧美视频一区二区在线观看| 草逼视频免费看| 亚洲欧美日韩天堂| av在线播放观看| 68精品国产免费久久久久久婷婷| 深夜成人影院| 97视频中文字幕| 在线日本制服中文欧美| 7777在线视频| 美女尤物久久精品| 伊人影院在线观看视频| 久久精品一区蜜桃臀影院| 69av视频在线| 欧洲激情一区二区| 亚洲免费一级片| 一区二区欧美久久| 成年男女免费视频网站不卡| 国产欧美日韩丝袜精品一区| 加勒比久久高清| 伊人久久99| 久久久精品午夜少妇| 韩国三级hd中文字幕有哪些| 国产亚洲欧美激情| 国产第100页| 欧美一区二区三区色| 国产精品毛片一区二区三区四区| 精品自在线视频| 日韩黄色碟片| 麻豆精品蜜桃一区二区三区| 伊人色**天天综合婷婷| 九色91popny| 2021国产精品久久精品| 久久成人在线观看| 欧美群妇大交群的观看方式| 亚洲欧美自偷自拍| 久久久久久久久久久国产| 高清一区二区| 一区二区精品视频| 日韩电影免费在线| 中国av免费看| 亚洲午夜电影在线| 99视频国产精品免费观看a| 中文字幕久热精品在线视频| 亚洲女色av| 久久精品国产一区二区三区日韩| 国产一区二区三区四区三区四| 午夜精品久久久久久久99热影院| 国产日产亚洲精品系列| 国产精品男女视频| 亚洲精品美女久久久| av电影免费在线看| 91|九色|视频| 亚洲天堂免费| 日韩av加勒比| 亚洲丝袜美腿综合| 国产精品无码专区av免费播放| 日韩在线播放av| 日韩欧乱色一区二区三区在线| 天堂精品一区二区三区| 日日夜夜精品视频免费| 色欲狠狠躁天天躁无码中文字幕 | 欧美日韩直播| 成年人午夜免费视频| 不卡高清视频专区| 激情五月色婷婷| 日韩成人av一区| 中老年在线免费视频| 麻豆av一区二区| 日韩高清不卡一区二区三区| 少妇精品无码一区二区免费视频| 日本二三区不卡| 成人在线播放视频| 国产精品普通话| 国产精品不卡| 国产在线视频三区| 亚洲一本大道在线| 天天在线女人的天堂视频| 日产精品久久久一区二区福利| 国产亚洲一区二区三区啪| 中文字幕视频在线免费观看| 国产精品久久久久久久久快鸭| 91在线公开视频| 色综合天天综合网国产成人网| 精品三级在线观看视频| 女性隐私黄www网站视频| 国产精品网站在线播放| 国产精品一区二区免费视频| 欧美人成在线视频| 日韩大尺度在线观看| 成人3d动漫一区二区三区| 一区二区中文字幕在线| 性中国古装videossex| 91国产美女在线观看| 国产精品一区二区99| 日韩av一卡二卡三卡| 亚洲国产sm捆绑调教视频| 国产日本在线| www.一区二区三区| 欧美亚洲一区| 日本爱爱小视频| 亚洲国产精品久久久久| 春暖花开亚洲一区二区三区| 中文字幕乱码一区二区三区| 成人动漫av在线| 最新中文字幕第一页| 九九热精品视频国产| 亚洲最好看的视频| 日本在线观看视频一区| 五月激情丁香一区二区三区| sese一区| 国产免费高清一区| 久久99国产精品久久99| 国产无码精品一区二区| 搡老女人一区二区三区视频tv| 东京久久高清| 亚洲天堂2018av| 五月婷婷另类国产| 麻豆传媒在线完整视频| 麻豆亚洲一区|