久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Redis面试题详解

發(fā)布時間:2024/4/13 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis面试题详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

什么是 Redis ?

Redis ,全稱 Remote Dictionary Server ,是一個基于內(nèi)存的高性能 Key-Value 數(shù)據(jù)庫。

另外,Redis 已經(jīng)成為互聯(lián)網(wǎng)公司在緩存組件選擇的唯一,更多的關(guān)注點是,如何使用好 Redis 。

Redis 有什么優(yōu)點?

🦅 1. 速度快

因為數(shù)據(jù)存在內(nèi)存中,類似于 HashMap ,HashMap 的優(yōu)勢就是查找和操作的時間復(fù)雜度都是O (1) 。

Redis 本質(zhì)上是一個 Key-Value 類型的內(nèi)存數(shù)據(jù)庫,很像Memcached ,整個數(shù)據(jù)庫統(tǒng)統(tǒng)加載在內(nèi)存當(dāng)中進(jìn)行操作,定期通過異步操作把數(shù)據(jù)庫數(shù)據(jù) flush 到硬盤上進(jìn)行保存。

因為是純內(nèi)存操作,Redis 的性能非常出色,每秒可以處理超過 10 萬次讀寫操作,是已知性能最快的 Key-Value 數(shù)據(jù)庫。

  • 如果我們查看在阿里云銷售的 Redis 規(guī)格,最低的也是 8W QPS 。

🦅 2. 支持豐富數(shù)據(jù)類型

支持 String ,List,Set,Sorted Set,Hash 。

Redis 的出色之處不僅僅是性能,Redis 最大的魅力是支持保存多種數(shù)據(jù)結(jié)構(gòu),此外單個 Value 的最大限制是1GB,不像 Memcached只能保存1MB的數(shù)據(jù),因此Redis可以用來實現(xiàn)很多有用的功能。比方說:

  • 用他的 List 來做 FIFO 雙向鏈表,實現(xiàn)一個輕量級的高性能消息隊列服務(wù)。

  • 用他的 Set 可以做高性能的 tag 系統(tǒng)等等。

🦅 3. 豐富的特性

  • 訂閱發(fā)布 Pub / Sub 功能

  • Key 過期策略

  • 事務(wù)

  • 支持多個 DB

  • 計數(shù)

并且在 Redis 5.0 增加了 Stream 功能,一個新的強(qiáng)大的支持多播的可持久化的消息隊列,提供類似 Kafka 的功能。

🦅 4. 持久化存儲

Redis 提供 RDB 和 AOF 兩種數(shù)據(jù)的持久化存儲方案,解決內(nèi)存數(shù)據(jù)庫最擔(dān)心的萬一 Redis 掛掉,數(shù)據(jù)會消失掉。

Redis 有什么缺點?

  • 1、由于 Redis 是內(nèi)存數(shù)據(jù)庫,所以,單臺機(jī)器,存儲的數(shù)據(jù)量,跟機(jī)器本身的內(nèi)存大小。雖然 Redis 本身有 Key 過期策略,但是還是需要提前預(yù)估和節(jié)約內(nèi)存。如果內(nèi)存增長過快,需要定期刪除數(shù)據(jù)。

    另外,可使用 Redis Cluster、Codis 等方案,對 Redis 進(jìn)行分區(qū),從單機(jī) Redis 變成集群 Redis 。

  • 2、如果進(jìn)行完整重同步,由于需要生成 RDB 文件,并進(jìn)行傳輸,會占用主機(jī)的 CPU ,并會消耗現(xiàn)網(wǎng)的帶寬。不過 Redis2.8 版本,已經(jīng)有部分重同步的功能,但是還是有可能有完整重同步的。比如,新上線的備機(jī)。

  • 3、修改配置文件,進(jìn)行重啟,將硬盤中的數(shù)據(jù)加載進(jìn)內(nèi)存,時間比較久。在這個過程中,Redis 不能提供服務(wù)。

Redis 和 Memcached 的區(qū)別有哪些?

🦅 1. Redis 支持復(fù)雜的數(shù)據(jù)結(jié)構(gòu)

  • Memcached 僅提供簡單的字符串。

  • Redis 提供復(fù)雜的數(shù)據(jù)結(jié)構(gòu),豐富的數(shù)據(jù)操作。

也因為 Redis 支持復(fù)雜的數(shù)據(jù)結(jié)構(gòu),Redis 即使往于 Memcached 推出,卻獲得更多開發(fā)者的青睞。

Redis 相比 Memcached 來說,擁有更多的數(shù)據(jù)結(jié)構(gòu),能支持更豐富的數(shù)據(jù)操作。如果需要緩存能夠支持更復(fù)雜的結(jié)構(gòu)和操作,Redis 會是不錯的選擇。

🦅 2. Redis 原生支持集群模式

  • 在 Redis3.x 版本中,官方便能支持 Cluster 模式。

  • Memcached 沒有原生的集群模式,需要依靠客戶端來實現(xiàn)往集群中分片寫入數(shù)據(jù)。

🦅 3. 性能對比

  • Redis 只使用單核,而 Memcached 可以使用多核,所以平均每一個核上 Redis在存儲小數(shù)據(jù)時比 Memcached 性能更高。

  • 在 100k 以上的數(shù)據(jù)中,Memcached 性能要高于 Redis 。雖然 Redis 最近也在存儲大數(shù)據(jù)的性能上進(jìn)行優(yōu)化,但是比起 Memcached,還是稍有遜色。

更多關(guān)于性能的對比,可以看看 《Memcached 與 Redis 的關(guān)鍵性能指標(biāo)比較》 。

4. 內(nèi)存使用效率對比

  • 簡單的 Key-Value 存儲的話,Memcached 的內(nèi)存利用率更高,可以使用類似內(nèi)存池。

  • 如果 Redis 采用 hash 結(jié)構(gòu)來做 key-value 存儲,由于其組合式的壓縮, 其內(nèi)存利用率會高于 Memcached 。

另外,Redis 和 Memcached 的內(nèi)存管理方法不同。

  • Redis 采用的是包裝的 malloc/free , 相較于 Memcached 的內(nèi)存管理方法 tcmalloc / jmalloc 來說,要簡單很多 。

5. 網(wǎng)絡(luò) IO 模型

  • Memcached 是多線程,非阻塞 IO 復(fù)用的網(wǎng)絡(luò)模型,原型上接近 Nignx 。

  • Redis 使用單線程的 IO 復(fù)用模型,自己封裝了一個簡單的 AeEvent 事件處理框架,主要實現(xiàn)了 epoll, kqueue 和 select ,更接近 Apache 早期的模式。

TODO 有點看不懂,找亞普表弟確認(rèn)中。

6. 持久化存儲

  • Memcached 不支持持久化存儲,重啟時,數(shù)據(jù)被清空。

  • Redis 支持持久化存儲,重啟時,可以恢復(fù)已持久化的數(shù)據(jù)。

也推薦閱讀下 《腳踏兩只船的困惑 - Memcached 與 Redis》 。

請說說 Redis 的線程模型?

:這個是我從網(wǎng)絡(luò)上找的資料,講的灰常不錯。

redis 內(nèi)部使用文件事件處理器 file event handler,這個文件事件處理器是單線程的,所以 redis 才叫做單線程的模型。它采用 IO 多路復(fù)用機(jī)制同時監(jiān)聽多個 socket,根據(jù) socket 上的事件來選擇對應(yīng)的事件處理器進(jìn)行處理。

文件事件處理器的結(jié)構(gòu)包含 4 個部分:

  • 多個 socket

  • IO 多路復(fù)用程序

  • 文件事件分派器

  • 事件處理器(連接應(yīng)答處理器、命令請求處理器、命令回復(fù)處理器)

多個 socket 可能會并發(fā)產(chǎn)生不同的操作,每個操作對應(yīng)不同的文件事件,但是 IO 多路復(fù)用程序會監(jiān)聽多個 socket,會將 socket 產(chǎn)生的事件放入隊列中排隊,事件分派器每次從隊列中取出一個事件,把該事件交給對應(yīng)的事件處理器進(jìn)行處理。

來看客戶端與 redis 的一次通信過程:

  • 客戶端 socket01 向 redis 的 server socket 請求建立連接,此時 server socket 會產(chǎn)生一個 AE_READABLE 事件,IO 多路復(fù)用程序監(jiān)聽到 server socket 產(chǎn)生的事件后,將該事件壓入隊列中。文件事件分派器從隊列中獲取該事件,交給連接應(yīng)答處理器。連接應(yīng)答處理器會創(chuàng)建一個能與客戶端通信的 socket01,并將該 socket01 的 AE_READABLE 事件與命令請求處理器關(guān)聯(lián)。

  • 假設(shè)此時客戶端發(fā)送了一個 set key value 請求,此時 redis 中的 socket01 會產(chǎn)生 AE_READABLE 事件,IO 多路復(fù)用程序?qū)⑹录喝腙犃?#xff0c;此時事件分派器從隊列中獲取到該事件,由于前面 socket01 的 AE_READABLE 事件已經(jīng)與命令請求處理器關(guān)聯(lián),因此事件分派器將事件交給命令請求處理器來處理。命令請求處理器讀取 socket01 的 key value 并在自己內(nèi)存中完成 key value 的設(shè)置。操作完成后,它會將 socket01 的 AE_WRITABLE 事件與令回復(fù)處理器關(guān)聯(lián)。

  • 如果此時客戶端準(zhǔn)備好接收返回結(jié)果了,那么 redis 中的 socket01 會產(chǎn)生一個 AE_WRITABLE 事件,同樣壓入隊列中,事件分派器找到相關(guān)聯(lián)的命令回復(fù)處理器,由命令回復(fù)處理器對 socket01 輸入本次操作的一個結(jié)果,比如 ok,之后解除 socket01 的 AE_WRITABLE 事件與命令回復(fù)處理器的關(guān)聯(lián)。

這樣便完成了一次通信。😈 耐心理解一下,灰常重要。如果還是不能理解,可以在網(wǎng)絡(luò)上搜一些資料,在理解理解。

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

  • 1、純內(nèi)存操作。

    Redis 為了達(dá)到最快的讀寫速度,將數(shù)據(jù)都讀到內(nèi)存中,并通過異步的方式將數(shù)據(jù)寫入磁盤。所以 Redis 具有快速和數(shù)據(jù)持久化的特征。

    如果不將數(shù)據(jù)放在內(nèi)存中,磁盤 I/O 速度為嚴(yán)重影響 Redis 的性能。

  • 2、核心是基于非阻塞的 IO 多路復(fù)用機(jī)制。

  • 3、單線程反而避免了多線程的頻繁上下文切換問題。

    Redis 利用隊列技術(shù),將并發(fā)訪問變?yōu)榇性L問,消除了傳統(tǒng)數(shù)據(jù)庫串行控制的開銷

  • 4、Redis 全程使用 hash 結(jié)構(gòu),讀取速度快,還有一些特殊的數(shù)據(jù)結(jié)構(gòu),對數(shù)據(jù)存儲進(jìn)行了優(yōu)化,如壓縮表,對短數(shù)據(jù)進(jìn)行壓縮存儲,再如,跳表,使用有序的數(shù)據(jù)結(jié)構(gòu)加快讀取的速度。

Redis 是單線程的,如何提高多核 CPU 的利用率?

可以在同一個服務(wù)器部署多個 Redis 的實例,并把他們當(dāng)作不同的服務(wù)器來使用,在某些時候,無論如何一個服務(wù)器是不夠的, 所以,如果你想使用多個 CPU ,你可以考慮一下分區(qū)。

Redis 有幾種持久化方式?

:這個問題有一丟丟長,耐心看完。

面試的時候,如果不能完整回答出來,也不會有大問題。重點,在于有條理,對 RDB 和 AOF 有理解。

🦅 持久化方式

Redis 提供了兩種方式,實現(xiàn)數(shù)據(jù)的持久化到硬盤。

  • 1、【全量】RDB 持久化,是指在指定的時間間隔內(nèi)將內(nèi)存中的數(shù)據(jù)集快照寫入磁盤。實際操作過程是,fork 一個子進(jìn)程,先將數(shù)據(jù)集寫入臨時文件,寫入成功后,再替換之前的文件,用二進(jìn)制壓縮存儲。

  • 2、【增量】AOF持久化,以日志的形式記錄服務(wù)器所處理的每一個寫、刪除操作,查詢操作不會記錄,以文本的方式記錄,可以打開文件看到詳細(xì)的操作記錄。

🦅 RDB 優(yōu)缺點

① 優(yōu)點

  • 靈活設(shè)置備份頻率和周期。你可能打算每個小時歸檔一次最近 24 小時的數(shù)據(jù),同時還要每天歸檔一次最近 30 天的數(shù)據(jù)。通過這樣的備份策略,一旦系統(tǒng)出現(xiàn)災(zāi)難性故障,我們可以非常容易的進(jìn)行恢復(fù)。

  • 非常適合冷備份,對于災(zāi)難恢復(fù)而言,RDB 是非常不錯的選擇。因為我們可以非常輕松的將一個單獨(dú)的文件壓縮后再轉(zhuǎn)移到其它存儲介質(zhì)上。推薦,可以將這種完整的數(shù)據(jù)文件發(fā)送到一些遠(yuǎn)程的安全存儲上去,比如說 Amazon 的 S3 云服務(wù)上去,在國內(nèi)可以是阿里云的 OSS 分布式存儲上。

  • 性能最大化。對于 Redis 的服務(wù)進(jìn)程而言,在開始持久化時,它唯一需要做的只是 fork 出子進(jìn)程,之后再由子進(jìn)程完成這些持久化的工作,這樣就可以極大的避免服務(wù)進(jìn)程執(zhí)行 IO 操作了。也就是說,RDB 對 Redis 對外提供的讀寫服務(wù),影響非常小,可以讓 Redis 保持高性能。

  • 恢復(fù)更快。相比于 AOF 機(jī)制,RDB 的恢復(fù)速度更更快,更適合恢復(fù)數(shù)據(jù),特別是在數(shù)據(jù)集非常大的情況。

② 缺點

  • 如果你想保證數(shù)據(jù)的高可用性,即最大限度的避免數(shù)據(jù)丟失,那么 RDB 將不是一個很好的選擇。因為系統(tǒng)一旦在定時持久化之前出現(xiàn)宕機(jī)現(xiàn)象,此前沒有來得及寫入磁盤的數(shù)據(jù)都將丟失。

    所以,RDB 實際場景下,需要和 AOF 一起使用。

  • 由于 RDB 是通過 fork 子進(jìn)程來協(xié)助完成數(shù)據(jù)持久化工作的,因此,如果當(dāng)數(shù)據(jù)集較大時,可能會導(dǎo)致整個服務(wù)器停止服務(wù)幾百毫秒,甚至是 1 秒鐘。

    所以,RDB 建議在業(yè)務(wù)低估,例如在半夜執(zhí)行。

🦅 AOF 優(yōu)缺點

① 優(yōu)點

  • 該機(jī)制可以帶來更高的

    數(shù)據(jù)安全性

    ,即數(shù)據(jù)持久性。Redis 中提供了 3 種同步策略,即每秒同步、每修改(執(zhí)行一個命令)同步和不同步。

    • 事實上,每秒同步也是異步完成的,其效率也是非常高的,所差的是一旦系統(tǒng)出現(xiàn)宕機(jī)現(xiàn)象,那么這一秒鐘之內(nèi)修改的數(shù)據(jù)將會丟失。

    • 而每修改同步,我們可以將其視為同步持久化,即每次發(fā)生的數(shù)據(jù)變化都會被立即記錄到磁盤中。可以預(yù)見,這種方式在效率上是最低的。

    • 至于無同步,無需多言,我想大家都能正確的理解它。

  • 由于該機(jī)制對日志文件的寫入操作采用的是append模式,因此在寫入過程中即使出現(xiàn)宕機(jī)現(xiàn)象,也不會破壞日志文件中已經(jīng)存在的內(nèi)容。

    • 因為以 append-only 模式寫入,所以沒有任何磁盤尋址的開銷,寫入性能非常高。

    • 另外,如果我們本次操作只是寫入了一半數(shù)據(jù)就出現(xiàn)了系統(tǒng)崩潰問題,不用擔(dān)心,在 Redis 下一次啟動之前,我們可以通過 redis-check-aof 工具來幫助我們解決數(shù)據(jù)一致性的問題。

  • 如果日志過大,Redis可以自動啟用 rewrite 機(jī)制。即使出現(xiàn)后臺重寫操作,也不會影響客戶端的讀寫。因為在 rewrite log 的時候,會對其中的指令進(jìn)行壓縮,創(chuàng)建出一份需要恢復(fù)數(shù)據(jù)的最小日志出來。再創(chuàng)建新日志文件的時候,老的日志文件還是照常寫入。當(dāng)新的 merge 后的日志文件 ready 的時候,再交換新老日志文件即可。

  • AOF 包含一個格式清晰、易于理解的日志文件用于記錄所有的修改操作。事實上,我們也可以通過該文件完成數(shù)據(jù)的重建。

② 缺點

  • 對于相同數(shù)量的數(shù)據(jù)集而言,AOF 文件通常要大于 RDB 文件。RDB 在恢復(fù)大數(shù)據(jù)集時的速度比 AOF 的恢復(fù)速度要快。

  • 根據(jù)同步策略的不同,AOF 在運(yùn)行效率上往往會慢于 RDB 。總之,每秒同步策略的效率是比較高的,同步禁用策略的效率和 RDB 一樣高效。

  • 以前 AOF 發(fā)生過 bug ,就是通過 AOF 記錄的日志,進(jìn)行數(shù)據(jù)恢復(fù)的時候,沒有恢復(fù)一模一樣的數(shù)據(jù)出來。所以說,類似 AOF 這種較為復(fù)雜的基于命令日志/merge/回放的方式,比基于 RDB 每次持久化一份完整的數(shù)據(jù)快照文件的方式,更加脆弱一些,容易有 bug 。不過 AOF 就是為了避免 rewrite 過程導(dǎo)致的 bug ,因此每次 rewrite 并不是基于舊的指令日志進(jìn)行 merge 的,而是基于當(dāng)時內(nèi)存中的數(shù)據(jù)進(jìn)行指令的重新構(gòu)建,這樣健壯性會好很多。

🦅 如何選擇

  • 不要僅僅使用 RDB,因為那樣會導(dǎo)致你丟失很多數(shù)據(jù)

  • 也不要僅僅使用 AOF,因為那樣有兩個問題,第一,你通過 AOF 做冷備,沒有 RDB 做冷備,來的恢復(fù)速度更快; 第二,RDB 每次簡單粗暴生成數(shù)據(jù)快照,更加健壯,可以避免 AOF 這種復(fù)雜的備份和恢復(fù)機(jī)制的 bug 。

  • Redis 支持同時開啟開啟兩種持久化方式,我們可以綜合使用 AOF 和 RDB 兩種持久化機(jī)制,用 AOF 來保證數(shù)據(jù)不丟失,作為數(shù)據(jù)恢復(fù)的第一選擇; 用 RDB 來做不同程度的冷備,在 AOF 文件都丟失或損壞不可用的時候,還可以使用 RDB 來進(jìn)行快速的數(shù)據(jù)恢復(fù)。

    • 如果同時使用 RDB 和 AOF 兩種持久化機(jī)制,那么在 Redis 重啟的時候,會使用 AOF 來重新構(gòu)建數(shù)據(jù),因為 AOF 中的數(shù)據(jù)更加完整

      一般來說, 如果想達(dá)到足以媲美 PostgreSQL 的數(shù)據(jù)安全性, 你應(yīng)該同時使用兩種持久化功能。如果你非常關(guān)心你的數(shù)據(jù), 但仍然可以承受數(shù)分鐘以內(nèi)的數(shù)據(jù)丟失,那么你可以只使用 RDB 持久化。

      有很多用戶都只使用 AOF 持久化,但并不推薦這種方式:因為定時生成 RDB 快照(snapshot)非常便于進(jìn)行數(shù)據(jù)庫備份, 并且 RDB 恢復(fù)數(shù)據(jù)集的速度也要比AOF恢復(fù)的速度要快,除此之外,使用 RDB 還可以避免之前提到的 AOF 程序的 bug。

在 Redis4.0 版本開始,允許你使用 RDB-AOF 混合持久化方式,詳細(xì)可見 《Redis4.0 之 RDB-AOF 混合持久化》 。也因此,RDB 和 AOF 同時使用,是希望達(dá)到安全的持久化的推薦方式。


另外,RDB 和 AOF 涉及的知識點蠻多的,可以看看:

  • 《Redis 設(shè)計與實現(xiàn) —— RDB》

  • 《Redis 設(shè)計與實現(xiàn) —— AOF》

如下是老錢對這塊的總結(jié),可能更加適合面試的場景:

  • bgsave 做鏡像全量持久化,AOF 做增量持久化。因為 bgsave 會耗費(fèi)較長時間,不夠?qū)崟r,在停機(jī)的時候會導(dǎo)致大量丟失數(shù)據(jù),所以需要 AOF 來配合使用。在 Redis 實例重啟時,會使用 bgsave 持久化文件重新構(gòu)建內(nèi)存,再使用 AOF 重放近期的操作指令來實現(xiàn)完整恢復(fù)重啟之前的狀態(tài)。

  • 對方追問那如果突然機(jī)器掉電會怎樣?取決于 AOF 日志 sync 屬性的配置,如果不要求性能,在每條寫指令時都 sync 一下磁盤,就不會丟失數(shù)據(jù)。但是在高性能的要求下每次都 sync 是不現(xiàn)實的,一般都使用定時 sync ,比如 1 秒 1 次,這個時候最多就會丟失 1 秒的數(shù)據(jù)。

  • 對方追問 bgsave 的原理是什么?你給出兩個詞匯就可以了,fork 和 cow 。fork 是指 Redis 通過創(chuàng)建子進(jìn)程來進(jìn)行 bgsave 操作。cow 指的是 copy on write ,子進(jìn)程創(chuàng)建后,父子進(jìn)程共享數(shù)據(jù)段,父進(jìn)程繼續(xù)提供讀寫服務(wù),寫臟的頁面數(shù)據(jù)會逐漸和子進(jìn)程分離開來。

    :這里 bgsave 操作后,會產(chǎn)生 RDB 快照文件。

TODO 和曉峰溝通下,使用哪個策略。

TODO 來自飛哥,主 aof ,從 rdb + aof

Redis 有幾種數(shù)據(jù)“過期”策略?

Redis 的過期策略,就是指當(dāng) Redis 中緩存的 key 過期了,Redis 如何處理。

Redis 提供了 3 種數(shù)據(jù)過期策略:

  • 被動刪除:當(dāng)讀/寫一個已經(jīng)過期的 key 時,會觸發(fā)惰性刪除策略,直接刪除掉這個過期 key 。

  • 主動刪除:由于惰性刪除策略無法保證冷數(shù)據(jù)被及時刪掉,所以 Redis 會定期主動淘汰一批已過期的 key 。

  • 主動刪除:當(dāng)前已用內(nèi)存超過 maxmemory 限定時,觸發(fā)主動清理策略,即 「數(shù)據(jù)“淘汰”策略」 。

在 Redis 中,同時使用了上述 3 種策略,即它們非互斥的。

想要進(jìn)一步了解,可以看看 《關(guān)于 Redis 數(shù)據(jù)過期策略》 文章。

Redis 有哪幾種數(shù)據(jù)“淘汰”策略?

Redis 內(nèi)存數(shù)據(jù)集大小上升到一定大小的時候,就會進(jìn)行數(shù)據(jù)淘汰策略。

Redis 提供了 6 種數(shù)據(jù)淘汰策略:

  • volatile-lru

  • volatile-ttl

  • volatile-random

  • allkeys-lru

  • allkeys-random

  • no-enviction

  • 具體的每種數(shù)據(jù)淘汰策略的定義,和如何選擇討論策略,可見 《Redis實戰(zhàn)(二) 內(nèi)存淘汰機(jī)制》 。

    🦅 Redis LRU 算法

    另外,Redis 的 LRU 算法,并不是一個嚴(yán)格的 LRU 實現(xiàn)。這意味著 Redis 不能選擇最佳候選鍵來回收,也就是最久未被訪問的那些鍵。相反,Redis 會嘗試執(zhí)行一個近似的 LRU 算法,通過采樣一小部分鍵,然后在采樣鍵中回收最適合(擁有最久未被訪問時間)的那個。

    • 具體的可以看看 《使用 Redis 作為一個 LRU 緩存》 文章。

    🦅 MySQL 里有 2000w 數(shù)據(jù),Redis 中只存 20w 的數(shù)據(jù),如何保證 Redis 中的數(shù)據(jù)都是熱點數(shù)據(jù)?

    :這個是從網(wǎng)絡(luò)上找到的一個神奇的問題,并且看了答案之后,覺得有點莫名的對不上。

    所以,感覺這個問題的目的是,如何保證熱點數(shù)據(jù)不要被淘汰。

    在 「Redis 有哪幾種數(shù)據(jù)“淘汰”策略?」 問題中,我們已經(jīng)看到,“Redis 內(nèi)存數(shù)據(jù)集大小上升到一定大小的時候,就會進(jìn)行數(shù)據(jù)淘汰策略。” 。

    那么,如果我們此時要保證熱點數(shù)據(jù)不被淘汰,那么需要選擇 volatile-lru 或 allkeys-lru 這兩個基于 LRU 算法的淘汰策略。

    相比較來說,最終會選擇 allkeys-lru 淘汰策略。原因是,如果我們的應(yīng)用對緩存的訪問符合冪律分布,也就是存在相對熱點數(shù)據(jù),或者我們不太清楚我們應(yīng)用的緩存訪問分布狀況,我們可以選擇 allkeys-lru 策略。

    🦅 Redis 回收進(jìn)程如何工作的?

    理解回收進(jìn)程如何工作是非常重要的:

    • 一個客戶端運(yùn)行了新的命令,添加了新的數(shù)據(jù)

    • Redis 檢查內(nèi)存使用情況,如果大于 maxmemory 的限制, 則根據(jù)設(shè)定好的策略進(jìn)行回收。

    • Redis 執(zhí)行新命令……

    所以我們不斷地穿越內(nèi)存限制的邊界,通過不斷達(dá)到邊界然后不斷地回收回到邊界以下(跌宕起伏)。

    如果有大量的 key 需要設(shè)置同一時間過期,一般需要注意什么?

    如果大量的 key 過期時間設(shè)置的過于集中,到過期的那個時間點,Redis可能會出現(xiàn)短暫的卡頓現(xiàn)象。

    一般需要在時間上加一個隨機(jī)值,使得過期時間分散一些。


    上次基友也碰到這個問題,請教了下,他的方案是調(diào)大 hz 參數(shù),每次過期的 key 更多,從而最終達(dá)到避免一次過期過多。

    這個定期的頻率,由配置文件中的 hz 參數(shù)決定,代表了一秒鐘內(nèi),后臺任務(wù)期望被調(diào)用的次數(shù)。Redis3.0.0 中的默認(rèn)值是 10 ,代表每秒鐘調(diào)用 10 次后臺任務(wù)。

    hz 調(diào)大將會提高 Redis 主動淘汰的頻率,如果你的 Redis 存儲中包含很多冷數(shù)據(jù)占用內(nèi)存過大的話,可以考慮將這個值調(diào)大,但 Redis 作者建議這個值不要超過 100 。我們實際線上將這個值調(diào)大到 100 ,觀察到 CPU 會增加 2% 左右,但對冷數(shù)據(jù)的內(nèi)存釋放速度確實有明顯的提高(通過觀察 keyspace 個數(shù)和 used_memory 大小)。

    Redis 有哪些數(shù)據(jù)結(jié)構(gòu)?

    如果你是 Redis 普通玩家,可能你的回答是如下五種數(shù)據(jù)結(jié)構(gòu):

    • 字符串 String

    • 字典Hash

    • 列表List

    • 集合Set

    • 有序集合 SortedSet

    如果你是 Redis 中級玩家,還需要加上下面幾種數(shù)據(jù)結(jié)構(gòu):

    • HyperLogLog

    • Geo

    • Pub / Sub

    如果你是 Redis 高端玩家,你可能玩過 Redis Module ,可以再加上下面幾種數(shù)據(jù)結(jié)構(gòu):

    • BloomFilter

    • RedisSearch

    • Redis-ML

    • JSON

    另外,在 Redis 5.0 增加了 Stream 功能,一個新的強(qiáng)大的支持多播的可持久化的消息隊列,提供類似 Kafka 的功能。😈 默默跟面試官在裝一波。

    聊聊 Redis 使用場景

    Redis 可用的場景非常之多:

    • 數(shù)據(jù)緩存

    • 會話緩存

    • 時效性數(shù)據(jù)

    • 訪問頻率

    • 計數(shù)器

    • 社交列表

    • 記錄用戶判定信息

    • 交集、并集和差集

    • 熱門列表與排行榜

    • 最新動態(tài)

    • 消息隊列

    • 分布式鎖

    詳細(xì)的介紹,可以看看如下文章:

    • 《聊聊 Redis 使用場景》

    • 《Redis 應(yīng)用場景及實例》

    • 《Redis 常見的應(yīng)用場景解析》

    • 《Redis 和 Memcached 各有什么優(yōu)缺點,主要的應(yīng)用場景是什么樣的?》

    🦅 請用 Redis 和任意語言實現(xiàn)一段惡意登錄保護(hù)的代碼,限制 1 小時內(nèi)每用戶 Id 最多只能登錄 5 次。

    用列表實現(xiàn),列表中每個元素代表登陸時間,只要最后的第 5 次登陸時間和現(xiàn)在時間差不超過 1 小時就禁止登陸。

    具體的代碼實現(xiàn),可以看看 《一道 Redis 面試題》 。

    Redis 支持的 Java 客戶端都有哪些?

    使用比較廣泛的有三個 Java 客戶端:

    • Redisson

      Redisson ,是一個高級的分布式協(xié)調(diào) Redis 客服端,能幫助用戶在分布式環(huán)境中輕松實現(xiàn)一些 Java 的對象 (Bloom filter, BitSet, Set, SetMultimap, ScoredSortedSet, SortedSet, Map, ConcurrentMap, List, ListMultimap, Queue, BlockingQueue, Deque, BlockingDeque, Semaphore, Lock, ReadWriteLock, AtomicLong, CountDownLatch, Publish / Subscribe, HyperLogLog)。

    • Jedis

      Jedis 是 Redis 的 Java 實現(xiàn)的客戶端,其 API 提供了比較全面的 Redis 命令的支持。

      Redisson 實現(xiàn)了分布式和可擴(kuò)展的 Java 數(shù)據(jù)結(jié)構(gòu),和 Jedis 相比,Jedis 功能較為簡單,不支持字符串操作,不支持排序、事務(wù)、管道、分區(qū)等 Redis 特性。

      Redisson 的宗旨是促進(jìn)使用者對 Redis 的關(guān)注分離,從而讓使用者能夠?qū)⒕Ω械胤旁谔幚順I(yè)務(wù)邏輯上。

    • Lettuce

      Lettuc e是一個可伸縮線程安全的 Redis 客戶端。多個線程可以共享同一個 RedisConnection 。它利用優(yōu)秀 Netty NIO 框架來高效地管理多個連接。

    Redis 官方推薦使用 Redisson 或 Jedis 。Spring Boot 2.x 內(nèi)置使用 Lettuce 。

    如何使用 Redis 實現(xiàn)分布式鎖?

    🦅 方案一:set 指令

    先拿 setnx 來爭搶鎖,搶到之后,再用 expire 給鎖加一個過期時間防止鎖忘記了釋放。

    • 這時候?qū)Ψ綍嬖V你說你回答得不錯,然后接著問如果在 setnx 之后執(zhí)行 expire 之前進(jìn)程意外 crash 或者要重啟維護(hù)了,那會怎么樣?

    • 這時候你要給予驚訝的反饋:唉,是喔,這個鎖就永遠(yuǎn)得不到釋放了。緊接著你需要抓一抓自己得腦袋,故作思考片刻,好像接下來的結(jié)果是你主動思考出來的,然后回答:我記得 set 指令有非常復(fù)雜的參數(shù),這個應(yīng)該是可以同時把 setnx 和 expire 合成一條指令來用的!對方這時會顯露笑容,心里開始默念:摁,這小子還不錯。

    所以,我們可以使用 set 指令,實現(xiàn)分布式鎖。指令如下:

    SET key value [EX seconds] [PX milliseconds] [NX|XX]
    • 可以使用 SET key value EX seconds NX 命令,嘗試獲得鎖。

    • 具體的實現(xiàn),可以參考 《Redis 分布式鎖的正確實現(xiàn)方式(Java版)》 文章。

    🦅 方案二:redlock

    set 指令的方案,適合用于在單機(jī) Redis 節(jié)點的場景下,在多 Redis 節(jié)點的場景下,會存在分布式鎖丟失的問題。所以,Redis 作者 Antirez 基于分布式環(huán)境下提出了一種更高級的分布式鎖的實現(xiàn)方式:Redlock 。

    具體的方案,同學(xué)們可以看看老友飛哥的兩篇博客:

    • 《Redlock:Redis分布式鎖最牛逼的實現(xiàn)》

    • 《Redisson 實現(xiàn) Redis 分布式鎖的 N 種姿勢》

    🦅 對比 Zookeeper 分布式鎖

    • 從可靠性上來說,Zookeeper 分布式鎖好于 Redis 分布式鎖。

    • 從性能上來說,Redis 分布式鎖好于 Zookeeper 分布式鎖。

    所以,沒有絕對的好壞,可以根據(jù)自己的業(yè)務(wù)來具體選擇。

    如何使用 Redis 實現(xiàn)分布式限流?

    在 Spring Cloud Gateway 中,提供了 Redis 分布式限流器的實現(xiàn),具體直接看寫的 《Spring-Cloud-Gateway 源碼解析 —— 過濾器 (4.10) 之 RequestRateLimiterGatewayFilterFactory 請求限流》 的 「5.3 Redis Lua 腳本」 部分。

    另外,Redisson 庫中,也提供了 Redis 分布式限流的實現(xiàn),不過需要使用 Pro 版本。

    如何使用 Redis 實現(xiàn)消息隊列?

    一般使用 list 結(jié)構(gòu)作為隊列,rpush 生產(chǎn)消息,lpop 消費(fèi)消息。當(dāng) lpop 沒有消息的時候,要適當(dāng) sleep 一會再重試。

    • 如果對方追問可不可以不用 sleep 呢?list 還有個指令叫 blpop ,在沒有消息的時候,它會阻塞住直到消息到來。

    • 如果對方追問能不能生產(chǎn)一次消費(fèi)多次呢?使用 pub / sub 主題訂閱者模式,可以實現(xiàn) 1:N 的消息隊列。

    • 如果對方追問 pub / sub 有什么缺點?在消費(fèi)者下線的情況下,生產(chǎn)的消息會丟失,得使用專業(yè)的消息隊列如 rabbitmq 等。

    • 如果對方追問 redis 如何實現(xiàn)延時隊列?我估計現(xiàn)在你很想把面試官一棒打死如果你手上有一根棒球棍的話,怎么問的這么詳細(xì)。但是你很克制,然后神態(tài)自若的回答道:使用 sortedset ,拿時間戳作為 score ,消息內(nèi)容作為 key 調(diào)用 zadd 來生產(chǎn)消息,消費(fèi)者用 zrangebyscore 指令獲取 N 秒之前的數(shù)據(jù)輪詢進(jìn)行處理。

    到這里,面試官暗地里已經(jīng)對你豎起了大拇指。但是他不知道的是此刻你卻豎起了中指,在椅子背后。

    當(dāng)然,實際上 Redis 真的真的真的不推薦作為消息隊列使用,它最多只是消息隊列的存儲層,上層的邏輯,還需要做大量的封裝和支持。

    另外,在 Redis 5.0 增加了 Stream 功能,一個新的強(qiáng)大的支持多播的可持久化的消息隊列,提供類似 Kafka 的功能。

    什么是 Redis Pipelining ?

    一次請求/響應(yīng)服務(wù)器能實現(xiàn)處理新的請求即使舊的請求還未被響應(yīng)。這樣就可以將多個命令發(fā)送到服務(wù)器,而不用等待回復(fù),最后在一個步驟中讀取該答復(fù)。

    這就是管道(pipelining),是一種幾十年來廣泛使用的技術(shù)。例如許多 POP3 協(xié)議已經(jīng)實現(xiàn)支持這個功能,大大加快了從服務(wù)器下載新郵件的過程。

    Redis 很早就支持管道(pipelining)技術(shù),因此無論你運(yùn)行的是什么版本,你都可以使用管道(pipelining)操作 Redis。

    🦅 Redis 如何做大量數(shù)據(jù)插入?

    Redis2.6 開始,Redis-cli 支持一種新的被稱之為 pipe mode 的新模式用于執(zhí)行大量數(shù)據(jù)插入工作。

    具體可見 《Redis 大量數(shù)據(jù)插入》 文章。

    什么是 Redis 事務(wù)?

    和眾多其它數(shù)據(jù)庫一樣,Redis 作為 NoSQL 數(shù)據(jù)庫也同樣提供了事務(wù)機(jī)制。在Redis中,MULTI / EXEC / DISCARD / WATCH 這四個命令是我們實現(xiàn)事務(wù)的基石。相信對有關(guān)系型數(shù)據(jù)庫開發(fā)經(jīng)驗的開發(fā)者而言這一概念并不陌生,即便如此,我們還是會簡要的列出 Redis 中事務(wù)的實現(xiàn)特征:

    • 1、在事務(wù)中的所有命令都將會被串行化的順序執(zhí)行,事務(wù)執(zhí)行期間,Redis 不會再為其它客戶端的請求提供任何服務(wù),從而保證了事物中的所有命令被原子的執(zhí)行。

    • 2、和關(guān)系型數(shù)據(jù)庫中的事務(wù)相比,在 Redis 事務(wù)中如果有某一條命令執(zhí)行失敗,其后的命令仍然會被繼續(xù)執(zhí)行。

    • 3、我們可以通過 MULTI 命令開啟一個事務(wù),有關(guān)系型數(shù)據(jù)庫開發(fā)經(jīng)驗的人可以將其理解為 "BEGIN TRANSACTION" 語句。在該語句之后執(zhí)行的命令都,將被視為事務(wù)之內(nèi)的操作,最后我們可以通過執(zhí)行 EXEC / DISCARD 命令來提交 / 回滾該事務(wù)內(nèi)的所有操作。這兩個 Redis 命令,可被視為等同于關(guān)系型數(shù)據(jù)庫中的 COMMIT / ROLLBACK 語句。

    • 4、在事務(wù)開啟之前,如果客戶端與服務(wù)器之間出現(xiàn)通訊故障并導(dǎo)致網(wǎng)絡(luò)斷開,其后所有待執(zhí)行的語句都將不會被服務(wù)器執(zhí)行。然而如果網(wǎng)絡(luò)中斷事件是發(fā)生在客戶端執(zhí)行 EXEC 命令之后,那么該事務(wù)中的所有命令都會被服務(wù)器執(zhí)行。

    • 5、當(dāng)使用 Append-Only 模式時,Redis 會通過調(diào)用系統(tǒng)函數(shù) write 將該事務(wù)內(nèi)的所有寫操作在本次調(diào)用中全部寫入磁盤。然而如果在寫入的過程中出現(xiàn)系統(tǒng)崩潰,如電源故障導(dǎo)致的宕機(jī),那么此時也許只有部分?jǐn)?shù)據(jù)被寫入到磁盤,而另外一部分?jǐn)?shù)據(jù)卻已經(jīng)丟失。

      Redis 服務(wù)器會在重新啟動時執(zhí)行一系列必要的一致性檢測,一旦發(fā)現(xiàn)類似問題,就會立即退出并給出相應(yīng)的錯誤提示。此時,我們就要充分利用 Redis 工具包中提供的 redis-check-aof 工具,該工具可以幫助我們定位到數(shù)據(jù)不一致的錯誤,并將已經(jīng)寫入的部分?jǐn)?shù)據(jù)進(jìn)行回滾。修復(fù)之后我們就可以再次重新啟動Redis服務(wù)器了。

    🦅 如何實現(xiàn) Redis CAS 操作?

    在 Redis 的事務(wù)中,WATCH 命令可用于提供CAS(check-and-set)功能。

    假設(shè)我們通過 WATCH 命令在事務(wù)執(zhí)行之前監(jiān)控了多個 keys ,倘若在 WATCH 之后有任何 Key 的值發(fā)生了變化,EXEC 命令執(zhí)行的事務(wù)都將被放棄,同時返回 nil 應(yīng)答以通知調(diào)用者事務(wù)執(zhí)行失敗。

    具體的示例,可以看看 《Redis 事務(wù)鎖 CAS 實現(xiàn)以及深入誤區(qū)》 。

    ##

    Redis 集群都有哪些方案?

    Redis 集群方案如下:

    • 1、Redis Sentinel

    • 2、Redis Cluster

    • 3、Twemproxy

    • 4、Codis

    • 5、客戶端分片

    關(guān)于前四種,可以看看 《Redis 實戰(zhàn)(四)集群機(jī)制》 這篇文章。

    關(guān)于最后一種,客戶端分片,在 Redis Cluster 出現(xiàn)之前使用較多,目前已經(jīng)使用比較少了。實現(xiàn)方式如下:

    在業(yè)務(wù)代碼層實現(xiàn),起幾個毫無關(guān)聯(lián)的 Redis 實例,在代碼層,對 Key 進(jìn)行 hash 計算,然后去對應(yīng)的 Redis 實例操作數(shù)據(jù)。

    這種方式對 hash 層代碼要求比較高,考慮部分包括,節(jié)點失效后的替代算法方案,數(shù)據(jù)震蕩后的自動腳本恢復(fù),實例的監(jiān)控,等等。

    🦅 選擇

    目前一般在選型上來說:

    • 體量較小時,選擇 Redis Sentinel ,單主 Redis 足以支撐業(yè)務(wù)。

    • 體量較大時,選擇 Redis Cluster ,通過分片,使用更多內(nèi)存。

    🦅 Redis 集群如何擴(kuò)容?

    這個問題,了解的也不是很多,建議在搜索有什么方案。

    • 如果 Redis 被當(dāng)做緩存使用,使用一致性哈希實現(xiàn)動態(tài)擴(kuò)容縮容。

    • 如果 Redis 被當(dāng)做一個持久化存儲使用,必須使用固定的 keys-to-nodes 映射關(guān)系,節(jié)點的數(shù)量一旦確定不能變化。否則的話(即Redis 節(jié)點需要動態(tài)變化的情況),必須使用可以在運(yùn)行時進(jìn)行數(shù)據(jù)再平衡的一套系統(tǒng),而當(dāng)前只有 Redis Cluster、Codis 可以做到這樣。

    什么是 Redis 主從同步?

    Redis 主從同步

    Redis 的主從同步(replication)機(jī)制,允許 Slave 從 Master 那里,通過網(wǎng)絡(luò)傳輸拷貝到完整的數(shù)據(jù)備份,從而達(dá)到主從機(jī)制。

    • 主數(shù)據(jù)庫可以進(jìn)行讀寫操作,當(dāng)發(fā)生寫操作的時候自動將數(shù)據(jù)同步到從數(shù)據(jù)庫,而從數(shù)據(jù)庫一般是只讀的,并接收主數(shù)據(jù)庫同步過來的數(shù)據(jù)。

    • 一個主數(shù)據(jù)庫可以有多個從數(shù)據(jù)庫,而一個從數(shù)據(jù)庫只能有一個主數(shù)據(jù)庫。

    • 第一次同步時,主節(jié)點做一次 bgsave 操作,并同時將后續(xù)修改操作記錄到內(nèi)存 buffer ,待完成后將 RDB 文件全量同步到復(fù)制節(jié)點,復(fù)制節(jié)點接受完成后將 RDB 鏡像加載到內(nèi)存。加載完成后,再通知主節(jié)點將期間修改的操作記錄同步到復(fù)制節(jié)點進(jìn)行重放就完成了同步過程。

    好處

    通過 Redis 的復(fù)制功,能可以很好的實現(xiàn)數(shù)據(jù)庫的讀寫分離,提高服務(wù)器的負(fù)載能力。主數(shù)據(jù)庫主要進(jìn)行寫操作,而從數(shù)據(jù)庫負(fù)責(zé)讀操作。


    Redis 主從同步,是很多 Redis 集群方案的基礎(chǔ),例如 Redis Sentinel、Redis Cluster 等等。

    更多詳細(xì),可以看看 《Redis 主從架構(gòu)》 。

    如何使用 Redis Sentinel 實現(xiàn)高可用?

    可以看看 《Redis 哨兵集群實現(xiàn)高可用》 。

    如果使用 Redis Cluster 實現(xiàn)高可用?

    可以看看

    • 《Redis 集群教程》 完整版

    • 《Redis 集群模式的工作原理能說一下么?》 精簡版

    🦅 說說 Redis 哈希槽的概念?

    Redis Cluster 沒有使用一致性 hash ,而是引入了哈希槽的概念。

    Redis 集群有 16384 個哈希槽,每個 key 通過 CRC16 校驗后對 16384 取模來決定放置哪個槽,集群的每個節(jié)點負(fù)責(zé)一部分 hash 槽。

    因為最大是 16384 個哈希槽,所以考慮 Redis 集群中的每個節(jié)點都能分配到一個哈希槽,所以最多支持 16384 個 Redis 節(jié)點。

    🦅 Redis Cluster 的主從復(fù)制模型是怎樣的?

    為了使在部分節(jié)點失敗或者大部分節(jié)點無法通信的情況下集群仍然可用,所以集群使用了主從復(fù)制模型,每個節(jié)點都會有 N-1 個復(fù)制節(jié)點。

    所以,Redis Cluster 可以說是 Redis Sentinel 帶分片的加強(qiáng)版。也可以說:

    • Redis Sentinel 著眼于高可用,在 master 宕機(jī)時會自動將 slave 提升為 master ,繼續(xù)提供服務(wù)。

    • Redis Cluster 著眼于擴(kuò)展性,在單個 Redis 內(nèi)存不足時,使用Cluster 進(jìn)行分片存儲。

    🦅 Redis Cluster 方案什么情況下會導(dǎo)致整個集群不可用?

    有 A,B,C 三個節(jié)點的集群,在沒有復(fù)制模型的情況下,如果節(jié)點 B 宕機(jī)了,那么整個集群就會以為缺少 5501-11000 這個范圍的槽而不可用。

    🦅 Redis Cluster 會有寫操作丟失嗎?為什么?

    Redis 并不能保證數(shù)據(jù)的強(qiáng)一致性,而是【異步復(fù)制】,這意味這在實際中集群在特定的條件下可能會丟失寫操作。

    🦅 Redis 集群如何選擇數(shù)據(jù)庫?

    Redis 集群目前無法做數(shù)據(jù)庫選擇,默認(rèn)在 0 數(shù)據(jù)庫。

    🦅 請說說生產(chǎn)環(huán)境中的 Redis 是怎么部署的?

    重點問題,仔細(xì)理解。

    • Redis Cluster,10 臺機(jī)器,5 臺機(jī)器部署了 redis 主實例,另外 5 臺機(jī)器部署了 redis 的從實例,每個主實例掛了一個從實例,5 個節(jié)點對外提供讀寫服務(wù),每個節(jié)點的讀寫高峰 qps 可能可以達(dá)到每秒 5 萬,5 臺機(jī)器最多是 25 萬讀寫請求每秒。

    • 機(jī)器是什么配置?32G 內(nèi)存 + 8 核 CPU + 1T 磁盤,但是分配給 Redis 進(jìn)程的是 10g 內(nèi)存,一般線上生產(chǎn)環(huán)境,Redis 的內(nèi)存盡量不要超過 10g,超過 10g 可能會有問題。那么,5 臺機(jī)器對外提供讀寫,一共有 50g 內(nèi)存。

    • 因為每個主實例都掛了一個從實例,所以是高可用的,任何一個主實例宕機(jī),都會自動故障遷移,Redis 從實例會自動變成主實例繼續(xù)提供讀寫服務(wù)。

    • 你往內(nèi)存里寫的是什么數(shù)據(jù)?每條數(shù)據(jù)的大小是多少?商品數(shù)據(jù),每條數(shù)據(jù)是 10kb 。100 條數(shù)據(jù)是 1mb ,10 萬條數(shù)據(jù)是 1g 。常駐內(nèi)存的是 200 萬條商品數(shù)據(jù),占用內(nèi)存是 20g,僅僅不到總內(nèi)存的 50%。目前高峰期每秒就是 3500 左右的請求量。

    • 其實大型的公司,會有基礎(chǔ)架構(gòu)的 team 負(fù)責(zé)緩存集群的運(yùn)維。

    什么是 Redis 分區(qū)?

    這個問題,和 「Redis 集群都有哪些方案?」 是同類問題。

    🦅 關(guān)于如下四個問題,直接看 《Redis 分區(qū)》 文章。

    • Redis 分區(qū)是什么?

    • 分區(qū)的優(yōu)勢?

    • 分區(qū)的不足?

    • 分區(qū)類型?

    可能有同學(xué)們會懵逼,又是 Redis 主從復(fù)制,又是 Redis 分區(qū),又是 Redis 集群。傻傻分不清啊!

    • Redis 分區(qū)是一種模式,將數(shù)據(jù)分區(qū)到不同的 Redis 節(jié)點上,而 Redis 集群的 Redis Cluster、Twemproxy、Codis、客戶端分片( 不包括 Redis Sentinel ) 這四種方案,是 Redis 分區(qū)的具體實現(xiàn)。

    • Redis 每個分區(qū),如果想要實現(xiàn)高可用,需要使用到 Redis 主從復(fù)制。

    🦅 你知道有哪些 Redis 分區(qū)實現(xiàn)方案

    Redis 分區(qū)方案,主要分成兩種類型:

    • 客戶端分區(qū),就是在客戶端就已經(jīng)決定數(shù)據(jù)會被存儲到哪個 Redis 節(jié)點或者從哪個 Redis 節(jié)點讀取。大多數(shù)客戶端已經(jīng)實現(xiàn)了客戶端分區(qū)。

      • 案例:Redis Cluster 和客戶端分區(qū)。

    • 代理分區(qū),意味著客戶端將請求發(fā)送給代理,然后代理決定去哪個節(jié)點寫數(shù)據(jù)或者讀數(shù)據(jù)。代理根據(jù)分區(qū)規(guī)則決定請求哪些 Redis 實例,然后根據(jù) Redis 的響應(yīng)結(jié)果返回給客戶端。

      • 案例:Twemproxy 和 Codis 。

    查詢路由(Query routing)的意思,是客戶端隨機(jī)地請求任意一個 Redis 實例,然后由 Redis 將請求轉(zhuǎn)發(fā)給正確的 Redis 節(jié)點。Redis Cluster 實現(xiàn)了一種混合形式的查詢路由,但并不是直接將請求從一個Redis 節(jié)點轉(zhuǎn)發(fā)到另一個 Redis 節(jié)點,而是在客戶端的幫助下直接 redirect 到正確的 Redis 節(jié)點。

    🦅 分布式 Redis 是前期做還是后期規(guī)模上來了再做好?為什么??

    如下是網(wǎng)絡(luò)上的一個大答案:

    既然 Redis 是如此的輕量(單實例只使用1M內(nèi)存),為防止以后的擴(kuò)容,最好的辦法就是一開始就啟動較多實例。即便你只有一臺服務(wù)器,你也可以一開始就讓 Redis 以分布式的方式運(yùn)行,使用分區(qū),在同一臺服務(wù)器上啟動多個實例。

    一開始就多設(shè)置幾個 Redis 實例,例如 32 或者 64 個實例,對大多數(shù)用戶來說這操作起來可能比較麻煩,但是從長久來看做這點犧牲是值得的。

    這樣的話,當(dāng)你的數(shù)據(jù)不斷增長,需要更多的 Redis 服務(wù)器時,你需要做的就是僅僅將 Redis 實例從一臺服務(wù)遷移到另外一臺服務(wù)器而已(而不用考慮重新分區(qū)的問題)。一旦你添加了另一臺服務(wù)器,你需要將你一半的 Redis 實例從第一臺機(jī)器遷移到第二臺機(jī)器。

    • 和飛哥溝通了下,這個操作不是很合理。

    • 無論怎么說,建議,需要搭建下 Redis Sentinel 高可用,至于拓展性,根據(jù)自己的情況,是否使用 Redis Cluster 集群。

    Redis 有哪些重要的健康指標(biāo)?

    推薦閱讀 《Redis 幾個重要的健康指標(biāo)》

    • 存活情況

    • 連接數(shù)

    • 阻塞客戶端數(shù)量

    • 使用內(nèi)存峰值

    • 內(nèi)存碎片率

    • 緩存命中率

    • OPS

    • 持久化

    • 失效KEY

    • 慢日志

    如何提高 Redis 命中率?

    推薦閱讀 《如何提高緩存命中率(Redis)》 。

    怎么優(yōu)化 Redis 的內(nèi)存占用

    推薦閱讀 《Redis 的內(nèi)存優(yōu)化》

    • redisObject 對象

    • 縮減鍵值對象

    • 共享對象池

    • 字符串優(yōu)化

    • 編碼優(yōu)化

    • 控制 key 的數(shù)量

    🦅 一個 Redis 實例最多能存放多少的 keys?List、Set、Sorted Set 他們最多能存放多少元素?

    一個 Redis 實例,最多能存放多少的 keys ,List、Set、Sorted Set 他們最多能存放多少元素。

    理論上,Redis 可以處理多達(dá) 2^32 的 keys ,并且在實際中進(jìn)行了測試,每個實例至少存放了 2 億 5 千萬的 keys。

    任何 list、set、和 sorted set 都可以放 2^32 個元素。

    🦅 假如 Redis 里面有 1 億個 key,其中有 10w 個 key 是以某個固定的已知的前綴開頭的,如果將它們?nèi)空页鰜?#xff1f;

    使用 keys 指令可以掃出指定模式的 key 列表。

    • 對方接著追問:如果這個 Redis 正在給線上的業(yè)務(wù)提供服務(wù),那使用keys指令會有什么問題?

    • 這個時候你要回答 Redis 關(guān)鍵的一個特性:Redis 的單線程的。keys 指令會導(dǎo)致線程阻塞一段時間,線上服務(wù)會停頓,直到指令執(zhí)行完畢,服務(wù)才能恢復(fù)。這個時候可以使用 scan 指令,scan 指令可以無阻塞的提取出指定模式的 key 列表,但是會有一定的重復(fù)概率,在客戶端做一次去重就可以了,但是整體所花費(fèi)的時間會比直接用 keys 指令長。

    Redis 常見的性能問題都有哪些?如何解決?

    • 1、Master 最好不要做任何持久化工作,如 RDB 內(nèi)存快照和 AOF 日志文件。

      • Master 寫內(nèi)存快照,save 命令調(diào)度 rdbSave 函數(shù),會阻塞主線程的工作,當(dāng)快照比較大時對性能影響是非常大的,會間斷性暫停服務(wù),所以 Master 最好不要寫內(nèi)存快照。

      • Master AOF 持久化,如果不重寫 AOF 文件,這個持久化方式對性能的影響是最小的,但是 AOF 文件會不斷增大,AOF 文件過大會影響 Master 重啟的恢復(fù)速度。

      • 所以,Master 最好不要做任何持久化工作,包括內(nèi)存快照和 AOF 日志文件,特別是不要啟用內(nèi)存快照做持久化。如果數(shù)據(jù)比較關(guān)鍵,某個 Slave 開啟AOF備份數(shù)據(jù),策略為每秒同步一次。

    • 2、Master 調(diào)用 BGREWRITEAOF 重寫 AOF 文件,AOF 在重寫的時候會占大量的 CPU 和內(nèi)存資源,導(dǎo)致服務(wù) load 過高,出現(xiàn)短暫服務(wù)暫停現(xiàn)象。

      • TODO 怎么解決?

    • 3、盡量避免在壓力很大的主庫上增加從庫。

      • TODO 怎么解決?

    • 4、主從復(fù)制不要用圖狀結(jié)構(gòu),用單向鏈表結(jié)構(gòu)更為穩(wěn)定,即:

      Master <- Slave1 <- Slave2 <- Slave3...。
      • 這樣的結(jié)構(gòu),也方便解決單點故障問題,實現(xiàn) Slave 對 Master 的替換。如果 Master掛了,可以立刻啟用 Slave1 做 Master ,其他不變。

    • 5、Redis 主從復(fù)制的性能問題,為了主從復(fù)制的速度和連接的穩(wěn)定性,Slave 和 Master 最好在同一個局域網(wǎng)內(nèi)。


    和飛哥溝通過后,他們主節(jié)點開啟 AOF ,從節(jié)點開啟 AOF + RDB 。

    和曉峰溝通后,他們主節(jié)點開啟 AOF ,從節(jié)點開啟 RDB 居多,也有開啟 AOF + RDB 的。

    修改配置不重啟 Redis 會實時生效嗎?

    針對運(yùn)行實例,有許多配置選項可以通過 CONFIG SET 命令進(jìn)行修改,而無需執(zhí)行任何形式的重啟。

    從 Redis 2.2 開始,可以從 AOF 切換到 RDB 的快照持久性或其他方式而不需要重啟 Redis。檢索 CONFIG GET * 命令獲取更多信息。

    但偶爾重新啟動是必須的,如為升級 Redis 程序到新的版本,或者當(dāng)你需要修改某些目前 CONFIG 命令還不支持的配置參數(shù)的時候。

    redis相比memcached有哪些優(yōu)勢?

  • memcached所有的值均是簡單的字符串,redis作為其替代者,支持更為豐富的數(shù)據(jù)類型

  • redis的速度比memcached快很多

  • redis可以持久化其數(shù)據(jù)

  • Memcache與Redis的區(qū)別都有哪些?

  • 存儲方式 Memecache把數(shù)據(jù)全部存在內(nèi)存之中,斷電后會掛掉,數(shù)據(jù)不能超過內(nèi)存大小。 Redis有部份存在硬盤上,這樣能保證數(shù)據(jù)的持久性。

  • 數(shù)據(jù)支持類型 Memcache對數(shù)據(jù)類型支持相對簡單。 Redis有復(fù)雜的數(shù)據(jù)類型。

  • 使用底層模型不同 它們之間底層實現(xiàn)方式 以及與客戶端之間通信的應(yīng)用協(xié)議不一樣。 Redis直接自己構(gòu)建了VM 機(jī)制 ,因為一般的系統(tǒng)調(diào)用系統(tǒng)函數(shù)的話,會浪費(fèi)一定的時間去移動和請求。

  • redis常見性能問題和解決方案:

  • Master寫內(nèi)存快照,save命令調(diào)度rdbSave函數(shù),會阻塞主線程的工作,當(dāng)快照比較大時對性能影響是非常大的,會間斷性暫停服務(wù),所以Master最好不要寫內(nèi)存快照。

  • Master AOF持久化,如果不重寫AOF文件,這個持久化方式對性能的影響是最小的,但是AOF文件會不斷增大,AOF文件過大會影響Master重啟的恢復(fù)速度。Master最好不要做任何持久化工作,包括內(nèi)存快照和AOF日志文件,特別是不要啟用內(nèi)存快照做持久化,如果數(shù)據(jù)比較關(guān)鍵,某個Slave開啟AOF備份數(shù)據(jù),策略為每秒同步一次。

  • Master調(diào)用BGREWRITEAOF重寫AOF文件,AOF在重寫的時候會占大量的CPU和內(nèi)存資源,導(dǎo)致服務(wù)load過高,出現(xiàn)短暫服務(wù)暫停現(xiàn)象。

  • Redis主從復(fù)制的性能問題,為了主從復(fù)制的速度和連接的穩(wěn)定性,Slave和Master最好在同一個局域網(wǎng)內(nèi)

  • 7mySQL里有2000w數(shù)據(jù),redis中只存20w的數(shù)據(jù),如何保證redis中的數(shù)據(jù)都是熱點數(shù)據(jù)

    相關(guān)知識:redis 內(nèi)存數(shù)據(jù)集大小上升到一定大小的時候,就會施行數(shù)據(jù)淘汰策略(回收策略)。

    redis 提供 6種數(shù)據(jù)淘汰策略:

  • volatile-lru:從已設(shè)置過期時間的數(shù)據(jù)集(server.db[i].expires)中挑選最近最少使用的數(shù)據(jù)淘汰

  • volatile-ttl:從已設(shè)置過期時間的數(shù)據(jù)集(server.db[i].expires)中挑選將要過期的數(shù)據(jù)淘汰

  • volatile-random:從已設(shè)置過期時間的數(shù)據(jù)集(server.db[i].expires)中任意選擇數(shù)據(jù)淘汰

  • allkeys-lru:從數(shù)據(jù)集(server.db[i].dict)中挑選最近最少使用的數(shù)據(jù)淘汰

  • allkeys-random:從數(shù)據(jù)集(server.db[i].dict)中任意選擇數(shù)據(jù)淘汰

  • no-enviction(驅(qū)逐):禁止驅(qū)逐數(shù)據(jù)

  • 請用Redis和任意語言實現(xiàn)一段惡意登錄保護(hù)的代碼,限制1小時內(nèi)每用戶Id最多只能登錄5次。具體登錄函數(shù)或功能用空函數(shù)即可,不用詳細(xì)寫出。

    用列表實現(xiàn):列表中每個元素代表登陸時間,只要最后的第5次登陸時間和現(xiàn)在時間差不超過1小時就禁止登陸.用Python寫的代碼如下:

    #!/usr/bin/env python3 import redis ? import sys ? import time ? ? r = redis.StrictRedis(host=’127.0.0.1′, port=6379, db=0) ? try: ? ? ? id = sys.argv[1] except: ? ? ?print(‘input argument error’) ? ?sys.exit(0) ? if r.llen(id) >= 5 and time.time() – float(r.lindex(id, 4)) <= 3600: ? ? ?print(“you are forbidden logining”) else: ? ? ? print(‘you are allowed to login’) ? ?r.lpush(id, time.time()) ? ?# login_func()

    ?

    為什么redis需要把所有數(shù)據(jù)放到內(nèi)存中?

    Redis為了達(dá)到最快的讀寫速度將數(shù)據(jù)都讀到內(nèi)存中,并通過異步的方式將數(shù)據(jù)寫入磁盤。所以redis具有快速和數(shù)據(jù)持久化的特征。如果不將數(shù)據(jù)放在內(nèi)存中,磁盤I/O速度為嚴(yán)重影響redis的性能。在內(nèi)存越來越便宜的今天,redis將會越來越受歡迎。

    如果設(shè)置了最大使用的內(nèi)存,則數(shù)據(jù)已有記錄數(shù)達(dá)到內(nèi)存限值后不能繼續(xù)插入新值。

    ?

    Redis是單進(jìn)程單線程的

    redis利用隊列技術(shù)將并發(fā)訪問變?yōu)榇性L問,消除了傳統(tǒng)數(shù)據(jù)庫串行控制的開銷

    ?

    redis的并發(fā)競爭問題如何解決?

    Redis為單進(jìn)程單線程模式,采用隊列模式將并發(fā)訪問變?yōu)榇性L問。Redis本身沒有鎖的概念,Redis對于多個客戶端連接并不存在競爭,但是在Jedis客戶端對Redis進(jìn)行并發(fā)訪問時會發(fā)生連接超時、數(shù)據(jù)轉(zhuǎn)換錯誤、阻塞、客戶端關(guān)閉連接等問題,這些問題均是由于客戶端連接混亂造成。

    對此有2種解決方法:

    1.客戶端角度,為保證每個客戶端間正常有序與Redis進(jìn)行通信,對連接進(jìn)行池化,同時對客戶端讀寫Redis操作采用內(nèi)部鎖synchronized。

    2.服務(wù)器角度,利用setnx實現(xiàn)鎖。

    注:對于第一種,需要應(yīng)用程序自己處理資源的同步,可以使用的方法比較通俗,可以使用synchronized也可以使用lock;第二種需要用到Redis的setnx命令,但是需要注意一些問題。

    ?

    redis事物的了解CAS(check-and-set 操作實現(xiàn)樂觀鎖 )?

    和眾多其它數(shù)據(jù)庫一樣,Redis作為NoSQL數(shù)據(jù)庫也同樣提供了事務(wù)機(jī)制。在Redis中,MULTI/EXEC/DISCARD/WATCH這四個命令是我們實現(xiàn)事務(wù)的基石。

    相信對有關(guān)系型數(shù)據(jù)庫開發(fā)經(jīng)驗的開發(fā)者而言這一概念并不陌生,即便如此,我們還是會簡要的列出Redis中事務(wù)的實現(xiàn)特征

  • 在事務(wù)中的所有命令都將會被串行化的順序執(zhí)行,事務(wù)執(zhí)行期間,Redis不會再為其它客戶端的請求提供任何服務(wù),從而保證了事物中的所有命令被原子的執(zhí)行。

  • 和關(guān)系型數(shù)據(jù)庫中的事務(wù)相比,在Redis事務(wù)中如果有某一條命令執(zhí)行失敗,其后的命令仍然會被繼續(xù)執(zhí)行。

  • 我們可以通過MULTI命令開啟一個事務(wù),有關(guān)系型數(shù)據(jù)庫開發(fā)經(jīng)驗的人可以將其理解為"BEGIN TRANSACTION"語句。在該語句之后執(zhí)行的命令都將被視為事務(wù)之內(nèi)的操作,最后我們可以通過執(zhí)行EXEC/DISCARD命令來提交/回滾該事務(wù)內(nèi)的所有操作。這兩個Redis命令可被視為等同于關(guān)系型數(shù)據(jù)庫中的COMMIT/ROLLBACK語句。

  • 在事務(wù)開啟之前,如果客戶端與服務(wù)器之間出現(xiàn)通訊故障并導(dǎo)致網(wǎng)絡(luò)斷開,其后所有待執(zhí)行的語句都將不會被服務(wù)器執(zhí)行。然而如果網(wǎng)絡(luò)中斷事件是發(fā)生在客戶端執(zhí)行EXEC命令之后,那么該事務(wù)中的所有命令都會被服務(wù)器執(zhí)行。

  • 當(dāng)使用Append-Only模式時,Redis會通過調(diào)用系統(tǒng)函數(shù)write將該事務(wù)內(nèi)的所有寫操作在本次調(diào)用中全部寫入磁盤。然而如果在寫入的過程中出現(xiàn)系統(tǒng)崩潰,如電源故障導(dǎo)致的宕機(jī),那么此時也許只有部分?jǐn)?shù)據(jù)被寫入到磁盤,而另外一部分?jǐn)?shù)據(jù)卻已經(jīng)丟失。

  • Redis服務(wù)器會在重新啟動時執(zhí)行一系列必要的一致性檢測,一旦發(fā)現(xiàn)類似問題,就會立即退出并給出相應(yīng)的錯誤提示。

    此時,我們就要充分利用Redis工具包中提供的redis-check-aof工具,該工具可以幫助我們定位到數(shù)據(jù)不一致的錯誤,并將已經(jīng)寫入的部分?jǐn)?shù)據(jù)進(jìn)行回滾。修復(fù)之后我們就可以再次重新啟動Redis服務(wù)器了。

    ?

    WATCH命令和基于CAS的樂觀鎖:

    在Redis的事務(wù)中,WATCH命令可用于提供CAS(check-and-set)功能。假設(shè)我們通過WATCH命令在事務(wù)執(zhí)行之前監(jiān)控了多個Keys,倘若在WATCH之后有任何Key的值發(fā)生了變化,EXEC命令執(zhí)行的事務(wù)都將被放棄,同時返回Null multi-bulk應(yīng)答以通知調(diào)用者事務(wù)

    執(zhí)行失敗。例如,我們再次假設(shè)Redis中并未提供incr命令來完成鍵值的原子性遞增,如果要實現(xiàn)該功能,我們只能自行編寫相應(yīng)的代碼。其偽碼如下:

    val = GET mykey val = val + 1 SET mykey $val

    以上代碼只有在單連接的情況下才可以保證執(zhí)行結(jié)果是正確的,因為如果在同一時刻有多個客戶端在同時執(zhí)行該段代碼,那么就會出現(xiàn)多線程程序中經(jīng)常出現(xiàn)的一種錯誤場景--競態(tài)爭用(race condition)。

    比如,客戶端A和B都在同一時刻讀取了mykey的原有值,假設(shè)該值為10,此后兩個客戶端又均將該值加一后set回Redis服務(wù)器,這樣就會導(dǎo)致mykey的結(jié)果為11,而不是我們認(rèn)為的12。為了解決類似的問題,我們需要借助WATCH命令的幫助,見如下代碼:

    WATCH mykey val = GET mykey val = val + 1 MULTI SET mykey $val EXEC

    和此前代碼不同的是,新代碼在獲取mykey的值之前先通過WATCH命令監(jiān)控了該鍵,此后又將set命令包圍在事務(wù)中,這樣就可以有效的保證每個連接在執(zhí)行EXEC之前,如果當(dāng)前連接獲取的mykey的值被其它連接的客戶端修改,那么當(dāng)前連接的EXEC命令將執(zhí)行失敗。這樣調(diào)用者在判斷返回值后就可以獲悉val是否被重新設(shè)置成功。

    ?

    redis持久化的幾種方式

    1、快照(snapshots)

    缺省情況情況下,Redis把數(shù)據(jù)快照存放在磁盤上的二進(jìn)制文件中,文件名為dump.rdb。你可以配置Redis的持久化策略,例如數(shù)據(jù)集中每N秒鐘有超過M次更新,就將數(shù)據(jù)寫入磁盤;或者你可以手工調(diào)用命令SAVE或BGSAVE。

    工作原理

    • Redis forks.

    • 子進(jìn)程開始將數(shù)據(jù)寫到臨時RDB文件中。

    • 當(dāng)子進(jìn)程完成寫RDB文件,用新文件替換老文件。

    • 這種方式可以使Redis使用copy-on-write技術(shù)。

    2、AOF

    快照模式并不十分健壯,當(dāng)系統(tǒng)停止,或者無意中Redis被kill掉,最后寫入Redis的數(shù)據(jù)就會丟失。

    這對某些應(yīng)用也許不是大問題,但對于要求高可靠性的應(yīng)用來說,Redis就不是一個合適的選擇。Append-only文件模式是另一種選擇。你可以在配置文件中打開AOF模式

    3、虛擬內(nèi)存方式

    當(dāng)你的key很小而value很大時,使用VM的效果會比較好.因為這樣節(jié)約的內(nèi)存比較大.

    當(dāng)你的key不小時,可以考慮使用一些非常方法將很大的key變成很大的value,比如你可以考慮將key,value組合成一個新的value.

    vm-max-threads這個參數(shù),可以設(shè)置訪問swap文件的線程數(shù),設(shè)置最好不要超過機(jī)器的核數(shù),如果設(shè)置為0,那么所有對swap文件的操作都是串行的.可能會造成比較長時間的延遲,但是對數(shù)據(jù)完整性有很好的保證.

    自己測試的時候發(fā)現(xiàn)用虛擬內(nèi)存性能也不錯。如果數(shù)據(jù)量很大,可以考慮分布式或者其他數(shù)據(jù)庫。

    ?

    redis的緩存失效策略和主鍵失效機(jī)制

    作為緩存系統(tǒng)都要定期清理無效數(shù)據(jù),就需要一個主鍵失效和淘汰策略.

    在Redis當(dāng)中,有生存期的key被稱為volatile。在創(chuàng)建緩存時,要為給定的key設(shè)置生存期,當(dāng)key過期的時候(生存期為0),它可能會被刪除。 

    1、影響生存時間的一些操作

    生存時間可以通過使用 DEL 命令來刪除整個 key 來移除,或者被 SET 和 GETSET 命令覆蓋原來的數(shù)據(jù),也就是說,修改key對應(yīng)的value和使用另外相同的key和value來覆蓋以后,當(dāng)前數(shù)據(jù)的生存時間不同。 

    比如說,對一個 key 執(zhí)行INCR命令,對一個列表進(jìn)行LPUSH命令,或者對一個哈希表執(zhí)行HSET命令,這類操作都不會修改 key 本身的生存時間。另一方面,如果使用RENAME對一個 key 進(jìn)行改名,那么改名后的 key的生存時間和改名前一樣。 

    RENAME命令的另一種可能是,嘗試將一個帶生存時間的 key 改名成另一個帶生存時間的 another_key ,這時舊的 another_key (以及它的生存時間)會被刪除,然后舊的 key 會改名為 another_key ,因此,新的 another_key 的生存時間也和原本的 key 一樣。使用PERSIST命令可以在不刪除 key 的情況下,移除 key 的生存時間,讓 key 重新成為一個persistent key 。 

    2、如何更新生存時間

    可以對一個已經(jīng)帶有生存時間的 key 執(zhí)行EXPIRE命令,新指定的生存時間會取代舊的生存時間。過期時間的精度已經(jīng)被控制在1ms之內(nèi),主鍵失效的時間復(fù)雜度是O(1),EXPIRE和TTL命令搭配使用,TTL可以查看key的當(dāng)前生存時間。設(shè)置成功返回 1;當(dāng) key 不存在或者不能為 key 設(shè)置生存時間時,返回 0 。

    最大緩存配置:

    在 redis 中,允許用戶設(shè)置最大使用內(nèi)存大小,server.maxmemory默認(rèn)為0,沒有指定最大緩存,如果有新的數(shù)據(jù)添加,超過最大內(nèi)存,則會使redis崩潰,所以一定要設(shè)置。redis 內(nèi)存數(shù)據(jù)集大小上升到一定大小的時候,就會實行數(shù)據(jù)淘汰策略。

    redis 提供 6種數(shù)據(jù)淘汰策略:

  • volatile-lru:從已設(shè)置過期時間的數(shù)據(jù)集(server.db[i].expires)中挑選最近最少使用的數(shù)據(jù)淘汰

  • volatile-ttl:從已設(shè)置過期時間的數(shù)據(jù)集(server.db[i].expires)中挑選將要過期的數(shù)據(jù)淘汰

  • volatile-random:從已設(shè)置過期時間的數(shù)據(jù)集(server.db[i].expires)中任意選擇數(shù)據(jù)淘汰

  • allkeys-lru:從數(shù)據(jù)集(server.db[i].dict)中挑選最近最少使用的數(shù)據(jù)淘汰

  • allkeys-random:從數(shù)據(jù)集(server.db[i].dict)中任意選擇數(shù)據(jù)淘汰

  • no-enviction(驅(qū)逐):禁止驅(qū)逐數(shù)據(jù) 

  • 注意這里的6種機(jī)制,volatile和allkeys規(guī)定了是對已設(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ù)訪問頻率都相同,則使用allkeys-random  

  • 三種數(shù)據(jù)淘汰策略:

    ttl和random比較容易理解,實現(xiàn)也會比較簡單。主要是Lru最近最少使用淘汰策略,設(shè)計上會對key 按失效時間排序,然后取最先失效的key進(jìn)行淘汰

    ?

    redis 最適合的場景

    Redis最適合所有數(shù)據(jù)in-momory的場景,雖然Redis也提供持久化功能,但實際更多的是一個disk-backed的功能,跟傳統(tǒng)意義上的持久化有比較大的差別,那么可能大家就會有疑問,似乎Redis更像一個加強(qiáng)版的Memcached,那么何時使用Memcached,何時使用Redis呢?

    如果簡單地比較Redis與Memcached的區(qū)別,大多數(shù)都會得到以下觀點:

  • Redis不僅僅支持簡單的k/v類型的數(shù)據(jù),同時還提供list,set,zset,hash等數(shù)據(jù)結(jié)構(gòu)的存儲。

  • Redis支持?jǐn)?shù)據(jù)的備份,即master-slave模式的數(shù)據(jù)備份。

  • Redis支持?jǐn)?shù)據(jù)的持久化,可以將內(nèi)存中的數(shù)據(jù)保持在磁盤中,重啟的時候可以再次加載進(jìn)行使用。

  • 1、會話緩存(Session Cache)

    最常用的一種使用Redis的情景是會話緩存(session cache)。用Redis緩存會話比其他存儲(如Memcached)的優(yōu)勢在于:Redis提供持久化。當(dāng)維護(hù)一個不是嚴(yán)格要求一致性的緩存時,如果用戶的購物車信息全部丟失,大部分人都會不高興的,現(xiàn)在,他們還會這樣嗎? 

    幸運(yùn)的是,隨著 Redis 這些年的改進(jìn),很容易找到怎么恰當(dāng)?shù)氖褂肦edis來緩存會話的文檔。甚至廣為人知的商業(yè)平臺Magento也提供Redis的插件。

    2、全頁緩存(FPC)

    除基本的會話token之外,Redis還提供很簡便的FPC平臺。回到一致性問題,即使重啟了Redis實例,因為有磁盤的持久化,用戶也不會看到頁面加載速度的下降,這是一個極大改進(jìn),類似PHP本地FPC。

    再次以Magento為例,Magento提供一個插件來使用Redis作為全頁緩存后端。

    此外,對WordPress的用戶來說,Pantheon有一個非常好的插件 wp-redis,這個插件能幫助你以最快速度加載你曾瀏覽過的頁面。

    3、隊列

    Reids在內(nèi)存存儲引擎領(lǐng)域的一大優(yōu)點是提供 list 和 set 操作,這使得Redis能作為一個很好的消息隊列平臺來使用。Redis作為隊列使用的操作,就類似于本地程序語言(如Python)對 list 的 push/pop 操作。

    如果你快速的在Google中搜索“Redis queues”,你馬上就能找到大量的開源項目,這些項目的目的就是利用Redis創(chuàng)建非常好的后端工具,以滿足各種隊列需求。例如,Celery有一個后臺就是使用Redis作為broker,你可以從這里去查看。

    4、排行榜/計數(shù)器

    Redis在內(nèi)存中對數(shù)字進(jìn)行遞增或遞減的操作實現(xiàn)的非常好。集合(Set)和有序集合(Sorted Set)也使得我們在執(zhí)行這些操作的時候變的非常簡單,Redis只是正好提供了這兩種數(shù)據(jù)結(jié)構(gòu)。

    所以,我們要從排序集合中獲取到排名最靠前的10個用戶–我們稱之為“user_scores”,我們只需要像下面一樣執(zhí)行即可:

    當(dāng)然,這是假定你是根據(jù)你用戶的分?jǐn)?shù)做遞增的排序。如果你想返回用戶及用戶的分?jǐn)?shù),你需要這樣執(zhí)行:

    ZRANGE user_scores 0 10 WITHSCORES

    Agora Games就是一個很好的例子,用Ruby實現(xiàn)的,它的排行榜就是使用Redis來存儲數(shù)據(jù)的,你可以在這里看到。

    5、發(fā)布/訂閱

    最后(但肯定不是最不重要的)是Redis的發(fā)布/訂閱功能。發(fā)布/訂閱的使用場景確實非常多。我已看見人們在社交網(wǎng)絡(luò)連接中使用,還可作為基于發(fā)布/訂閱的腳本觸發(fā)器,甚至用Redis的發(fā)布/訂閱功能來建立聊天系統(tǒng)!(不,這是真的,你可以去核實)。

    Redis提供的所有特性中,我感覺這個是喜歡的人最少的一個,雖然它為用戶提供如果此多功能。

    其他問題

    有些比較兇殘的面試官,可能會問我們一些 Redis 數(shù)據(jù)結(jié)構(gòu)的問題,例如:

    • Skiplist 插入和查詢原理?

    • 壓縮列表的原理?

    • Redis 底層為什么使用跳躍表而不是紅黑樹?

      跳躍表在范圍查找的時候性能比較高。

    666. 彩蛋

    哇哦,爽。雖然過程痛苦,但是中間請教了蠻多人問題,收獲頗多哈。

    參考與推薦如下文章:

    • JeffreyLcm 《Redis 面試題》

    • 烙印99 《史上最全 Redis 面試題及答案》

    • yanglbme 《Redis 和 Memcached 有什么區(qū)別?Redis 的線程模型是什么?為什么單線程的 Redis 比多線程的 Memcached 效率要高得多?》

    • 老錢 《天下無難試之 Redis 面試題刁難大全》

    • yanglbme 《Redis 的持久化有哪幾種方式?不同的持久化機(jī)制都有什么優(yōu)缺點?持久化機(jī)制具體底層是如何實現(xiàn)的?》

    總結(jié)

    以上是生活随笔為你收集整理的Redis面试题详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    999久久久国产精品消防器材 | 日日躁夜夜躁狠狠躁 | 亚洲国产欧美日韩精品一区二区三区 | 国产片av国语在线观看 | 亚洲精品午夜国产va久久成人 | 超碰97人人做人人爱少妇 | 亚洲中文字幕无码中字 | 少妇愉情理伦片bd | 亚洲va中文字幕无码久久不卡 | 亚洲一区二区观看播放 | 人人妻人人藻人人爽欧美一区 | 亚洲精品一区三区三区在线观看 | 国产一区二区三区精品视频 | 亚洲の无码国产の无码步美 | 国产午夜亚洲精品不卡 | 天天拍夜夜添久久精品 | 少妇太爽了在线观看 | 国产精品怡红院永久免费 | 国语自产偷拍精品视频偷 | 成人欧美一区二区三区黑人免费 | 欧美丰满老熟妇xxxxx性 | 亚洲国产精品久久久久久 | 中文字幕无码日韩专区 | 一本色道久久综合亚洲精品不卡 | 中文久久乱码一区二区 | 自拍偷自拍亚洲精品被多人伦好爽 | 国产口爆吞精在线视频 | 精品午夜福利在线观看 | 亚洲一区二区三区国产精华液 | 免费无码的av片在线观看 | 国产香蕉尹人综合在线观看 | 亚洲综合色区中文字幕 | 久久精品中文字幕一区 | 免费无码午夜福利片69 | 日本精品高清一区二区 | 97资源共享在线视频 | 久久aⅴ免费观看 | 久久天天躁夜夜躁狠狠 | 国产一区二区不卡老阿姨 | 亚洲日韩中文字幕在线播放 | 欧美精品国产综合久久 | 久久久久av无码免费网 | 国产麻豆精品一区二区三区v视界 | 67194成是人免费无码 | 东京一本一道一二三区 | 又紧又大又爽精品一区二区 | 纯爱无遮挡h肉动漫在线播放 | 国产精品久久久久久久9999 | 亚洲va中文字幕无码久久不卡 | 亚洲精品国产精品乱码视色 | 国产亚洲精品久久久闺蜜 | 国产极品美女高潮无套在线观看 | 真人与拘做受免费视频 | 欧美人与物videos另类 | 亚洲色大成网站www国产 | 国产无遮挡又黄又爽免费视频 | 少妇太爽了在线观看 | 熟妇女人妻丰满少妇中文字幕 | 日本一卡二卡不卡视频查询 | 中文精品无码中文字幕无码专区 | 日日摸日日碰夜夜爽av | 在线看片无码永久免费视频 | 日本一卡2卡3卡四卡精品网站 | 99久久人妻精品免费一区 | 麻豆果冻传媒2021精品传媒一区下载 | 男人扒开女人内裤强吻桶进去 | 精品无码国产自产拍在线观看蜜 | 东京热男人av天堂 | 最近中文2019字幕第二页 | 无码人妻av免费一区二区三区 | 自拍偷自拍亚洲精品被多人伦好爽 | 国产一区二区三区日韩精品 | 大肉大捧一进一出视频出来呀 | 少妇无码一区二区二三区 | 国产性生大片免费观看性 | 东京热无码av男人的天堂 | 麻豆精品国产精华精华液好用吗 | 蜜桃视频插满18在线观看 | 国产精品福利视频导航 | 人人妻人人澡人人爽欧美一区 | 麻豆果冻传媒2021精品传媒一区下载 | 中文字幕无码乱人伦 | 欧美猛少妇色xxxxx | 天天拍夜夜添久久精品 | 东京热一精品无码av | 国产精品无码一区二区桃花视频 | 国产午夜亚洲精品不卡 | 成人欧美一区二区三区黑人免费 | 蜜桃视频韩日免费播放 | 红桃av一区二区三区在线无码av | 成人动漫在线观看 | 乱人伦人妻中文字幕无码久久网 | 人人妻人人澡人人爽精品欧美 | 国产精品久久久久久亚洲影视内衣 | 学生妹亚洲一区二区 | 人妻有码中文字幕在线 | 人人妻人人澡人人爽人人精品浪潮 | 性史性农村dvd毛片 | 熟妇激情内射com | 欧美亚洲国产一区二区三区 | 性啪啪chinese东北女人 | 欧美国产日韩亚洲中文 | 亚洲日韩中文字幕在线播放 | 亚洲国产成人av在线观看 | 丰满妇女强制高潮18xxxx | 日产精品高潮呻吟av久久 | 中文字幕乱妇无码av在线 | 无码国产激情在线观看 | 久久久无码中文字幕久... | 中文字幕无码人妻少妇免费 | 亚洲精品综合一区二区三区在线 | 日韩精品久久久肉伦网站 | 国产精品亚洲五月天高清 | 中文字幕无码av波多野吉衣 | 国产精品美女久久久久av爽李琼 | 亚洲欧美日韩综合久久久 | 国产又爽又黄又刺激的视频 | 中文字幕 人妻熟女 | 粗大的内捧猛烈进出视频 | 天天躁日日躁狠狠躁免费麻豆 | 日日噜噜噜噜夜夜爽亚洲精品 | 亚洲毛片av日韩av无码 | 亚洲男女内射在线播放 | 精品一区二区不卡无码av | 奇米影视7777久久精品 | 久久精品人妻少妇一区二区三区 | 国内综合精品午夜久久资源 | 无码av最新清无码专区吞精 | 蜜臀aⅴ国产精品久久久国产老师 | 精品无码一区二区三区爱欲 | 国产福利视频一区二区 | 精品国产精品久久一区免费式 | 久久精品国产亚洲精品 | 激情人妻另类人妻伦 | 人人妻人人澡人人爽精品欧美 | 粗大的内捧猛烈进出视频 | 国产美女精品一区二区三区 | 日韩人妻少妇一区二区三区 | 久久午夜无码鲁丝片秋霞 | yw尤物av无码国产在线观看 | 55夜色66夜色国产精品视频 | 亚洲区欧美区综合区自拍区 | 亚洲综合伊人久久大杳蕉 | 国产情侣作爱视频免费观看 | 亚洲 欧美 激情 小说 另类 | 久久国产自偷自偷免费一区调 | 美女毛片一区二区三区四区 | 国产99久久精品一区二区 | 性色欲情网站iwww九文堂 | 18禁止看的免费污网站 | 久久精品成人欧美大片 | 精品久久久久久亚洲精品 | 人妻互换免费中文字幕 | 亚洲成av人片在线观看无码不卡 | 97久久精品无码一区二区 | 精品久久久无码中文字幕 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 无码人中文字幕 | 国精品人妻无码一区二区三区蜜柚 | 国产精品国产三级国产专播 | 熟妇人妻激情偷爽文 | 久久精品成人欧美大片 | 欧美成人高清在线播放 | 窝窝午夜理论片影院 | 无码av免费一区二区三区试看 | 国内丰满熟女出轨videos | 国产精品永久免费视频 | 夜夜躁日日躁狠狠久久av | a在线观看免费网站大全 | 内射白嫩少妇超碰 | 激情内射亚州一区二区三区爱妻 | 久久亚洲中文字幕精品一区 | 欧美亚洲国产一区二区三区 | 熟女少妇在线视频播放 | 无码任你躁久久久久久久 | 亚洲色欲久久久综合网东京热 | 亚洲一区二区三区播放 | 台湾无码一区二区 | 少妇人妻偷人精品无码视频 | 日本精品少妇一区二区三区 | 国产激情精品一区二区三区 | 波多野结衣aⅴ在线 | 国产卡一卡二卡三 | 国産精品久久久久久久 | 久久99精品国产麻豆蜜芽 | 欧美 日韩 人妻 高清 中文 | 国产精品第一区揄拍无码 | 亚洲熟妇色xxxxx欧美老妇 | 亚洲经典千人经典日产 | 麻豆人妻少妇精品无码专区 | 午夜丰满少妇性开放视频 | 亚洲熟妇自偷自拍另类 | 欧美日韩一区二区免费视频 | 亚洲の无码国产の无码影院 | 中文字幕人妻无码一夲道 | 性史性农村dvd毛片 | 国产在线精品一区二区高清不卡 | 欧美日韩一区二区三区自拍 | 女人被男人爽到呻吟的视频 | 国产人妻精品一区二区三区不卡 | 日日鲁鲁鲁夜夜爽爽狠狠 | 成人影院yy111111在线观看 | 亚洲中文字幕在线无码一区二区 | 国产午夜亚洲精品不卡下载 | 乱人伦中文视频在线观看 | 成人无码精品一区二区三区 | 免费无码一区二区三区蜜桃大 | 三级4级全黄60分钟 | 无码人妻久久一区二区三区不卡 | 亚洲欧美日韩综合久久久 | 性欧美videos高清精品 | 中文字幕av无码一区二区三区电影 | 亚洲日本va中文字幕 | 老子影院午夜精品无码 | 国产精品视频免费播放 | 亚洲精品鲁一鲁一区二区三区 | 国内少妇偷人精品视频免费 | 国产亚洲精品精品国产亚洲综合 | 欧美精品免费观看二区 | 亚洲精品久久久久avwww潮水 | 97夜夜澡人人爽人人喊中国片 | 国色天香社区在线视频 | 亚洲精品成人av在线 | 欧美野外疯狂做受xxxx高潮 | 久久久久久av无码免费看大片 | 国产成人精品视频ⅴa片软件竹菊 | 大肉大捧一进一出视频出来呀 | 在线观看欧美一区二区三区 | 亚洲中文字幕无码中文字在线 | 国产午夜无码视频在线观看 | 色五月五月丁香亚洲综合网 | 亚洲综合久久一区二区 | 久久国产精品_国产精品 | 亚洲中文字幕无码中字 | 激情国产av做激情国产爱 | 亚洲国产欧美国产综合一区 | aⅴ亚洲 日韩 色 图网站 播放 | 波多野结衣一区二区三区av免费 | 国产又粗又硬又大爽黄老大爷视 | 欧美一区二区三区视频在线观看 | 67194成是人免费无码 | 亚洲精品一区二区三区四区五区 | 在线 国产 欧美 亚洲 天堂 | 欧美一区二区三区视频在线观看 | 成人欧美一区二区三区黑人免费 | 波多野结衣av一区二区全免费观看 | 一二三四在线观看免费视频 | 男女猛烈xx00免费视频试看 | 亚洲欧美精品aaaaaa片 | 内射欧美老妇wbb | 久久亚洲中文字幕无码 | 亚洲午夜福利在线观看 | 亚洲啪av永久无码精品放毛片 | 亚洲日本va中文字幕 | 久久99精品久久久久婷婷 | 中文字幕人妻无码一夲道 | 曰韩少妇内射免费播放 | 欧洲vodafone精品性 | 日韩av激情在线观看 | 欧美国产日韩亚洲中文 | 日欧一片内射va在线影院 | 少妇高潮一区二区三区99 | 亚洲精品中文字幕乱码 | 又大又黄又粗又爽的免费视频 | 亚洲精品综合一区二区三区在线 | 亚洲精品无码人妻无码 | 国产精品鲁鲁鲁 | 成在人线av无码免费 | 精品国产一区二区三区四区在线看 | 香港三级日本三级妇三级 | 少妇性俱乐部纵欲狂欢电影 | 人人妻人人澡人人爽人人精品 | 国产精品久久久午夜夜伦鲁鲁 | 欧美黑人性暴力猛交喷水 | 日本免费一区二区三区最新 | 亚洲色在线无码国产精品不卡 | 无码av岛国片在线播放 | 色婷婷久久一区二区三区麻豆 | 高潮毛片无遮挡高清免费视频 | 成年美女黄网站色大免费视频 | 红桃av一区二区三区在线无码av | 无码人妻av免费一区二区三区 | 天天综合网天天综合色 | 麻豆国产97在线 | 欧洲 | 伊人久久大香线蕉av一区二区 | 精品久久久久久人妻无码中文字幕 | 成人一在线视频日韩国产 | 久久午夜无码鲁丝片秋霞 | 国产97在线 | 亚洲 | 一个人看的视频www在线 | 久久久中文久久久无码 | 久久精品人妻少妇一区二区三区 | 中文字幕乱码人妻二区三区 | 日本肉体xxxx裸交 | 在线播放亚洲第一字幕 | 性生交大片免费看l | 国产偷国产偷精品高清尤物 | 欧美日本免费一区二区三区 | 色五月丁香五月综合五月 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 午夜精品久久久内射近拍高清 | 亚洲国产精品久久久天堂 | 老子影院午夜精品无码 | 奇米影视7777久久精品 | 欧美老人巨大xxxx做受 | 日本大香伊一区二区三区 | 久久久久久亚洲精品a片成人 | 亚洲成av人综合在线观看 | 精品无码国产一区二区三区av | 精品久久久无码人妻字幂 | 露脸叫床粗话东北少妇 | 99久久婷婷国产综合精品青草免费 | 久久精品女人的天堂av | 亚洲精品一区二区三区四区五区 | 欧美老人巨大xxxx做受 | 亚洲欧洲无卡二区视頻 | 99国产精品白浆在线观看免费 | 成人动漫在线观看 | 无人区乱码一区二区三区 | 在教室伦流澡到高潮hnp视频 | 精品国产一区av天美传媒 | 欧美精品免费观看二区 | 国产莉萝无码av在线播放 | 天天躁日日躁狠狠躁免费麻豆 | 动漫av一区二区在线观看 | 日韩人妻无码一区二区三区久久99 | 久久午夜夜伦鲁鲁片无码免费 | 日韩av无码一区二区三区不卡 | aⅴ亚洲 日韩 色 图网站 播放 | 国产精品久久福利网站 | 又粗又大又硬毛片免费看 | 亚洲综合伊人久久大杳蕉 | 精品无码av一区二区三区 | 久久无码人妻影院 | 国产 精品 自在自线 | 无码人妻少妇伦在线电影 | 国产极品美女高潮无套在线观看 | 荫蒂被男人添的好舒服爽免费视频 | 亚洲综合久久一区二区 | 强伦人妻一区二区三区视频18 | 大肉大捧一进一出好爽视频 | 在线成人www免费观看视频 | 人人妻人人澡人人爽欧美一区九九 | 国产精品va在线观看无码 | 国产又粗又硬又大爽黄老大爷视 | 人人妻人人澡人人爽人人精品浪潮 | 欧美日韩亚洲国产精品 | 国产精品久久久久影院嫩草 | 人妻与老人中文字幕 | 国产真实夫妇视频 | 中文字幕无码视频专区 | 国产精品高潮呻吟av久久4虎 | 国产精品资源一区二区 | 国产成人无码午夜视频在线观看 | 国产做国产爱免费视频 | 国内少妇偷人精品视频免费 | 少妇被粗大的猛进出69影院 | 免费看男女做好爽好硬视频 | 久久久久免费精品国产 | 少妇的肉体aa片免费 | 暴力强奷在线播放无码 | 特大黑人娇小亚洲女 | 国产真实乱对白精彩久久 | 免费中文字幕日韩欧美 | 丝袜人妻一区二区三区 | 精品国偷自产在线视频 | 暴力强奷在线播放无码 | 人人澡人摸人人添 | 国产无遮挡又黄又爽又色 | 国产乱码精品一品二品 | 久久久国产精品无码免费专区 | 亚洲色成人中文字幕网站 | 国产精品亚洲一区二区三区喷水 | 日本一区二区三区免费播放 | 日产国产精品亚洲系列 | 99在线 | 亚洲 | 夜夜躁日日躁狠狠久久av | 国产香蕉97碰碰久久人人 | 色一情一乱一伦一视频免费看 | 久久精品丝袜高跟鞋 | 久久精品国产一区二区三区肥胖 | www国产精品内射老师 | 欧美丰满熟妇xxxx | 国产又粗又硬又大爽黄老大爷视 | 97久久精品无码一区二区 | 国内精品人妻无码久久久影院蜜桃 | 欧美日韩色另类综合 | 久久99精品国产麻豆蜜芽 | 亚洲国产一区二区三区在线观看 | 国产亚洲精品久久久久久国模美 | 国产亚洲视频中文字幕97精品 | 九九热爱视频精品 | 丰满少妇女裸体bbw | 精品国产成人一区二区三区 | 亚洲中文字幕久久无码 | 精品国偷自产在线 | 国产免费观看黄av片 | 日韩精品无码一区二区中文字幕 | 漂亮人妻洗澡被公强 日日躁 | 日韩av无码一区二区三区不卡 | 99久久久无码国产精品免费 | 水蜜桃av无码 | 国产口爆吞精在线视频 | 骚片av蜜桃精品一区 | 久久精品无码一区二区三区 | 欧美亚洲国产一区二区三区 | 色一情一乱一伦一区二区三欧美 | 日日天干夜夜狠狠爱 | 一本久道久久综合婷婷五月 | 色妞www精品免费视频 | 久久午夜夜伦鲁鲁片无码免费 | 午夜精品一区二区三区的区别 | 少妇性l交大片 | 综合网日日天干夜夜久久 | 国产精品.xx视频.xxtv | 久久精品99久久香蕉国产色戒 | 国产精品亚洲一区二区三区喷水 | 精品久久久无码中文字幕 | 日本一区二区三区免费高清 | 久久久久久久女国产乱让韩 | 亚洲七七久久桃花影院 | 激情人妻另类人妻伦 | 国产人妻精品午夜福利免费 | 中文精品久久久久人妻不卡 | 日本爽爽爽爽爽爽在线观看免 | 亚洲精品一区二区三区大桥未久 | 国产亚洲欧美在线专区 | 国产猛烈高潮尖叫视频免费 | 领导边摸边吃奶边做爽在线观看 | 国产成人无码一二三区视频 | 日日躁夜夜躁狠狠躁 | 国产疯狂伦交大片 | 国产成人午夜福利在线播放 | 日韩av激情在线观看 | 国内精品九九久久久精品 | 中文字幕无码视频专区 | 亚洲色无码一区二区三区 | 成年女人永久免费看片 | 国产成人精品一区二区在线小狼 | 亚洲精品鲁一鲁一区二区三区 | 国产成人人人97超碰超爽8 | 乱码午夜-极国产极内射 | 中文字幕精品av一区二区五区 | 国产精品亚洲а∨无码播放麻豆 | 精品一区二区三区无码免费视频 | ass日本丰满熟妇pics | 色窝窝无码一区二区三区色欲 | 久久国产劲爆∧v内射 | 97精品国产97久久久久久免费 | 无码精品国产va在线观看dvd | 在线成人www免费观看视频 | 久久久无码中文字幕久... | 欧美真人作爱免费视频 | 日本一卡2卡3卡四卡精品网站 | 婷婷六月久久综合丁香 | 九九热爱视频精品 | 国产口爆吞精在线视频 | 高中生自慰www网站 | 国产成人无码av片在线观看不卡 | 日韩精品乱码av一区二区 | 内射爽无广熟女亚洲 | 无码成人精品区在线观看 | 亚洲精品国偷拍自产在线麻豆 | 一本大道久久东京热无码av | 牲欲强的熟妇农村老妇女视频 | 亚洲日韩一区二区三区 | 欧美35页视频在线观看 | 激情爆乳一区二区三区 | 午夜时刻免费入口 | 无码一区二区三区在线 | 国产电影无码午夜在线播放 | 永久免费观看美女裸体的网站 | 亚洲国产精品一区二区第一页 | 欧美日韩一区二区综合 | 久久综合狠狠综合久久综合88 | 亚洲狠狠色丁香婷婷综合 | 亚洲国产av精品一区二区蜜芽 | 欧美丰满熟妇xxxx | 中文字幕+乱码+中文字幕一区 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 草草网站影院白丝内射 | 18禁止看的免费污网站 | 国产成人精品视频ⅴa片软件竹菊 | 熟妇女人妻丰满少妇中文字幕 | 人妻无码久久精品人妻 | 99久久久无码国产精品免费 | 久久综合狠狠综合久久综合88 | 日本丰满熟妇videos | 国精产品一品二品国精品69xx | 日本熟妇大屁股人妻 | 亚洲a无码综合a国产av中文 | 一二三四社区在线中文视频 | 中文字幕无码热在线视频 | 亚洲精品午夜无码电影网 | 日欧一片内射va在线影院 | 麻豆国产97在线 | 欧洲 | 暴力强奷在线播放无码 | 国产激情无码一区二区app | 国产亚洲欧美日韩亚洲中文色 | 乱码av麻豆丝袜熟女系列 | 欧美人与牲动交xxxx | 亚洲人成影院在线无码按摩店 | 无码人妻黑人中文字幕 | 黑人巨大精品欧美一区二区 | 99久久精品无码一区二区毛片 | 在线观看免费人成视频 | 国产成人综合美国十次 | 亚洲精品成人av在线 | 欧美人与物videos另类 | 欧美日韩一区二区综合 | 久久无码专区国产精品s | 国产suv精品一区二区五 | 久久精品女人天堂av免费观看 | 俄罗斯老熟妇色xxxx | 在线播放免费人成毛片乱码 | 99国产精品白浆在线观看免费 | 久久综合久久自在自线精品自 | 伊人久久大香线蕉午夜 | 大色综合色综合网站 | 一本大道伊人av久久综合 | 午夜肉伦伦影院 | 欧美阿v高清资源不卡在线播放 | 99精品无人区乱码1区2区3区 | 亚洲国产精品毛片av不卡在线 | 少妇激情av一区二区 | 在教室伦流澡到高潮hnp视频 | 国产激情无码一区二区 | 精品国偷自产在线 | 乌克兰少妇性做爰 | 欧美熟妇另类久久久久久不卡 | 精品国产精品久久一区免费式 | 国产av剧情md精品麻豆 | 国产亲子乱弄免费视频 | 午夜精品久久久久久久久 | 婷婷五月综合激情中文字幕 | 国产精品理论片在线观看 | 日韩欧美群交p片內射中文 | 澳门永久av免费网站 | 18禁黄网站男男禁片免费观看 | 国产精品igao视频网 | 午夜精品一区二区三区的区别 | 麻豆国产人妻欲求不满 | 国产精品美女久久久网av | 亚洲精品国产品国语在线观看 | 天天躁夜夜躁狠狠是什么心态 | 天天做天天爱天天爽综合网 | 亚洲精品一区二区三区在线观看 | 国产suv精品一区二区五 | 国产精品久久久久久亚洲毛片 | 欧洲精品码一区二区三区免费看 | 亚洲成a人片在线观看日本 | 亚洲精品成a人在线观看 | 日本熟妇浓毛 | 嫩b人妻精品一区二区三区 | 蜜桃av抽搐高潮一区二区 | 欧美人与牲动交xxxx | 国产精品人人妻人人爽 | 久久久无码中文字幕久... | 欧美激情综合亚洲一二区 | 我要看www免费看插插视频 | 少妇性l交大片欧洲热妇乱xxx | 青青青手机频在线观看 | 欧美野外疯狂做受xxxx高潮 | 超碰97人人射妻 | 久久99精品国产麻豆蜜芽 | 欧洲欧美人成视频在线 | 牛和人交xxxx欧美 | 久久99精品国产麻豆蜜芽 | 一区二区传媒有限公司 | 久久久久免费精品国产 | 国产成人无码区免费内射一片色欲 | 无码一区二区三区在线观看 | 亚洲一区二区三区偷拍女厕 | 国产人妻人伦精品1国产丝袜 | 亚洲一区二区三区含羞草 | 性史性农村dvd毛片 | 青青草原综合久久大伊人精品 | 亚洲综合无码一区二区三区 | 青草青草久热国产精品 | 国产性生交xxxxx无码 | 鲁一鲁av2019在线 | 一本久久a久久精品亚洲 | 又粗又大又硬毛片免费看 | 国产成人午夜福利在线播放 | 老熟妇仑乱视频一区二区 | 在线成人www免费观看视频 | 欧美高清在线精品一区 | 老子影院午夜精品无码 | 国产99久久精品一区二区 | 中文字幕日韩精品一区二区三区 | 荫蒂添的好舒服视频囗交 | 国产精品va在线观看无码 | 中文字幕无码乱人伦 | 丰满人妻被黑人猛烈进入 | 奇米影视7777久久精品 | 天天做天天爱天天爽综合网 | 欧美人与善在线com | 少妇性l交大片 | 极品尤物被啪到呻吟喷水 | 美女黄网站人色视频免费国产 | 久激情内射婷内射蜜桃人妖 | 精品偷拍一区二区三区在线看 | 精品国产福利一区二区 | 欧美性色19p | 亚洲中文字幕乱码av波多ji | 伊人久久大香线蕉亚洲 | 高清国产亚洲精品自在久久 | 成人试看120秒体验区 | 亚洲精品一区二区三区四区五区 | 乱码午夜-极国产极内射 | 国产精品.xx视频.xxtv | 亚洲综合色区中文字幕 | 牲欲强的熟妇农村老妇女视频 | 国产精品第一国产精品 | 狠狠综合久久久久综合网 | 午夜丰满少妇性开放视频 | 久久精品人人做人人综合 | 久久99久久99精品中文字幕 | 中文字幕乱妇无码av在线 | 夜夜躁日日躁狠狠久久av | 国产激情一区二区三区 | 麻豆md0077饥渴少妇 | 天天燥日日燥 | 国产精品毛多多水多 | 乱人伦人妻中文字幕无码 | 国产成人综合色在线观看网站 | 香蕉久久久久久av成人 | 一本久久a久久精品vr综合 | 99久久亚洲精品无码毛片 | 欧美大屁股xxxxhd黑色 | 亚洲va中文字幕无码久久不卡 | 无码乱肉视频免费大全合集 | 国产成人无码午夜视频在线观看 | 婷婷丁香六月激情综合啪 | 暴力强奷在线播放无码 | 少妇一晚三次一区二区三区 | 国产xxx69麻豆国语对白 | 无遮挡国产高潮视频免费观看 | 久久综合狠狠综合久久综合88 | 国产激情精品一区二区三区 | 人妻插b视频一区二区三区 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 亚洲成a人片在线观看无码3d | 人妻aⅴ无码一区二区三区 | 人妻与老人中文字幕 | 亚洲精品无码人妻无码 | 久久精品人人做人人综合试看 | 精品久久久久久亚洲精品 | 性色av无码免费一区二区三区 | 7777奇米四色成人眼影 | 99国产欧美久久久精品 | 国精品人妻无码一区二区三区蜜柚 | 特黄特色大片免费播放器图片 | 日本一卡二卡不卡视频查询 | 成在人线av无码免观看麻豆 | av无码久久久久不卡免费网站 | 久久国内精品自在自线 | 18禁黄网站男男禁片免费观看 | 青草视频在线播放 | 亚洲人成影院在线观看 | 久久精品国产一区二区三区 | 国产精品无码永久免费888 | 久久久www成人免费毛片 | 三级4级全黄60分钟 | 国产国语老龄妇女a片 | 日韩少妇内射免费播放 | 午夜性刺激在线视频免费 | 一二三四社区在线中文视频 | 国产一区二区不卡老阿姨 | 图片区 小说区 区 亚洲五月 | 伊在人天堂亚洲香蕉精品区 | 成在人线av无码免费 | 国产免费无码一区二区视频 | 国产成人精品视频ⅴa片软件竹菊 | 免费观看又污又黄的网站 | 无码吃奶揉捏奶头高潮视频 | 国产香蕉尹人综合在线观看 | 国产精品人人爽人人做我的可爱 | 一本大道久久东京热无码av | 人人澡人人妻人人爽人人蜜桃 | 精品国偷自产在线视频 | 亚洲精品鲁一鲁一区二区三区 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 麻豆国产人妻欲求不满谁演的 | 久久久中文字幕日本无吗 | 狠狠色丁香久久婷婷综合五月 | 无套内谢的新婚少妇国语播放 | 亚洲人成网站色7799 | 欧美人与禽猛交狂配 | 无码中文字幕色专区 | 97夜夜澡人人双人人人喊 | 久久久久久国产精品无码下载 | 激情亚洲一区国产精品 | 无码午夜成人1000部免费视频 | 粉嫩少妇内射浓精videos | 国产超碰人人爽人人做人人添 | 久久久久久久久888 | 亚洲成av人在线观看网址 | 初尝人妻少妇中文字幕 | 亚洲午夜福利在线观看 | 国产精品理论片在线观看 | 粉嫩少妇内射浓精videos | a片免费视频在线观看 | 久精品国产欧美亚洲色aⅴ大片 | 牛和人交xxxx欧美 | 亚洲成av人综合在线观看 | 亚洲精品午夜国产va久久成人 | 丰满诱人的人妻3 | 国产精品对白交换视频 | 玩弄少妇高潮ⅹxxxyw | 国产精品18久久久久久麻辣 | 国内精品九九久久久精品 | 国产在线一区二区三区四区五区 | 日本va欧美va欧美va精品 | 色欲av亚洲一区无码少妇 | 人妻夜夜爽天天爽三区 | 色婷婷av一区二区三区之红樱桃 | 久久久久久久久蜜桃 | 国产情侣作爱视频免费观看 | 国产香蕉尹人综合在线观看 | 麻豆国产丝袜白领秘书在线观看 | 曰韩少妇内射免费播放 | 天堂一区人妻无码 | 在线 国产 欧美 亚洲 天堂 | 久久亚洲精品中文字幕无男同 | 精品亚洲成av人在线观看 | 国产肉丝袜在线观看 | 无码播放一区二区三区 | 伊人久久婷婷五月综合97色 | 少妇久久久久久人妻无码 | 一本色道婷婷久久欧美 | 高清国产亚洲精品自在久久 | 精品成在人线av无码免费看 | 一区二区三区乱码在线 | 欧洲 | 中文字幕无码av波多野吉衣 | 正在播放东北夫妻内射 | 亚洲第一网站男人都懂 | 亚洲狠狠色丁香婷婷综合 | 俺去俺来也www色官网 | 久久国产36精品色熟妇 | 国产人妻人伦精品1国产丝袜 | 无码人妻av免费一区二区三区 | 久久久中文字幕日本无吗 | 亚洲中文字幕av在天堂 | 大肉大捧一进一出好爽视频 | 久久综合给合久久狠狠狠97色 | 亚洲成色www久久网站 | 青青青手机频在线观看 | 动漫av一区二区在线观看 | 天堂а√在线中文在线 | 成人精品天堂一区二区三区 | 丝袜人妻一区二区三区 | 麻豆果冻传媒2021精品传媒一区下载 | 国产亚洲精品久久久久久 | 熟妇女人妻丰满少妇中文字幕 | 粉嫩少妇内射浓精videos | 精品久久久无码中文字幕 | 无码精品人妻一区二区三区av | 鲁鲁鲁爽爽爽在线视频观看 | 久9re热视频这里只有精品 | 亚洲色在线无码国产精品不卡 | 小sao货水好多真紧h无码视频 | 国产人妻久久精品二区三区老狼 | 欧美 日韩 亚洲 在线 | 国产卡一卡二卡三 | 77777熟女视频在线观看 а天堂中文在线官网 | 中文精品久久久久人妻不卡 | 98国产精品综合一区二区三区 | 一二三四在线观看免费视频 | 久久久精品国产sm最大网站 | 亚洲一区二区三区播放 | 日本熟妇人妻xxxxx人hd | 宝宝好涨水快流出来免费视频 | 成人一在线视频日韩国产 | 鲁鲁鲁爽爽爽在线视频观看 | 露脸叫床粗话东北少妇 | 国产美女精品一区二区三区 | 荫蒂被男人添的好舒服爽免费视频 | 人妻与老人中文字幕 | 少妇人妻偷人精品无码视频 | 少妇邻居内射在线 | 久久www免费人成人片 | 日韩视频 中文字幕 视频一区 | 欧美日韩人成综合在线播放 | 亚洲欧美精品aaaaaa片 | 黑森林福利视频导航 | 成年美女黄网站色大免费视频 | 天天拍夜夜添久久精品大 | 久久综合给久久狠狠97色 | 性欧美熟妇videofreesex | 国产精品久久精品三级 | 欧美人与牲动交xxxx | 国产精品久久久久9999小说 | 国产人妻精品一区二区三区不卡 | 成在人线av无码免观看麻豆 | av人摸人人人澡人人超碰下载 | 久久国语露脸国产精品电影 | 国精产品一品二品国精品69xx | 国产精品亚洲专区无码不卡 | 初尝人妻少妇中文字幕 | 美女极度色诱视频国产 | 免费无码的av片在线观看 | 无码免费一区二区三区 | 狂野欧美激情性xxxx | 成人一在线视频日韩国产 | 国产av无码专区亚洲a∨毛片 | 黑人巨大精品欧美黑寡妇 | 丝袜人妻一区二区三区 | 亚洲中文字幕无码中文字在线 | 亚洲国产高清在线观看视频 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 荫蒂添的好舒服视频囗交 | 狠狠cao日日穞夜夜穞av | 老太婆性杂交欧美肥老太 | 又粗又大又硬又长又爽 | 特级做a爰片毛片免费69 | 国产成人精品一区二区在线小狼 | 美女极度色诱视频国产 | 亚洲精品综合一区二区三区在线 | 永久免费观看美女裸体的网站 | 国产av一区二区精品久久凹凸 | 国产精品久久久久影院嫩草 | 国产片av国语在线观看 | 精品无码国产自产拍在线观看蜜 | 国产内射爽爽大片视频社区在线 | 国产成人无码a区在线观看视频app | 色综合久久88色综合天天 | 久久久精品成人免费观看 | 伊人久久大香线焦av综合影院 | 国产高潮视频在线观看 | 在线精品国产一区二区三区 | 日韩无套无码精品 | 国产熟女一区二区三区四区五区 | 夜夜夜高潮夜夜爽夜夜爰爰 | 动漫av网站免费观看 | 婷婷色婷婷开心五月四房播播 | 亚洲精品鲁一鲁一区二区三区 | 激情内射亚州一区二区三区爱妻 | 青青青手机频在线观看 | 国产亚洲tv在线观看 | 装睡被陌生人摸出水好爽 | 亚洲国产成人av在线观看 | 色婷婷综合激情综在线播放 | 人人澡人摸人人添 | 亚洲色欲色欲欲www在线 | 自拍偷自拍亚洲精品被多人伦好爽 | 亚洲中文字幕av在天堂 | 人妻天天爽夜夜爽一区二区 | 丰满诱人的人妻3 | 欧美真人作爱免费视频 | 成人精品视频一区二区三区尤物 | 久久婷婷五月综合色国产香蕉 | 精品 日韩 国产 欧美 视频 | 国产97在线 | 亚洲 | 国产精品无码一区二区桃花视频 | 一本色道久久综合狠狠躁 | 中文精品久久久久人妻不卡 | 亚洲精品中文字幕 | 国产人成高清在线视频99最全资源 | 亚洲区欧美区综合区自拍区 | 国产免费观看黄av片 | 国产激情精品一区二区三区 | 中文精品无码中文字幕无码专区 | 国产熟女一区二区三区四区五区 | 大乳丰满人妻中文字幕日本 | 一本无码人妻在中文字幕免费 | 麻花豆传媒剧国产免费mv在线 | 丰满人妻翻云覆雨呻吟视频 | 草草网站影院白丝内射 | 99久久精品无码一区二区毛片 | 国产口爆吞精在线视频 | 中文毛片无遮挡高清免费 | 欧美肥老太牲交大战 | 成人无码精品一区二区三区 | 67194成是人免费无码 | 中文字幕无码热在线视频 | 一本久道久久综合狠狠爱 | 亚洲日韩精品欧美一区二区 | 国内精品久久毛片一区二区 | 国内综合精品午夜久久资源 | 天天摸天天碰天天添 | 日韩av无码一区二区三区 | 特黄特色大片免费播放器图片 | 亚洲欧美色中文字幕在线 | 国产精品香蕉在线观看 | 中文字幕无线码免费人妻 | 欧美老人巨大xxxx做受 | а√天堂www在线天堂小说 | 熟女体下毛毛黑森林 | 国产人妻人伦精品 | 久久国产精品偷任你爽任你 | 人人妻人人澡人人爽欧美精品 | 国内老熟妇对白xxxxhd | 日韩无套无码精品 | 亚洲欧美精品aaaaaa片 | 日本www一道久久久免费榴莲 | 国产无遮挡又黄又爽又色 | 久久久中文字幕日本无吗 | 亚洲狠狠色丁香婷婷综合 | 国产卡一卡二卡三 | 国产凸凹视频一区二区 | 草草网站影院白丝内射 | 天天摸天天透天天添 | 日本精品人妻无码免费大全 | 午夜时刻免费入口 | 欧美xxxxx精品 | 国产性生大片免费观看性 | 精品国产一区二区三区四区在线看 | 亚拍精品一区二区三区探花 | 婷婷丁香五月天综合东京热 | 亚洲人成影院在线观看 | 亚洲欧洲日本无在线码 | 狠狠亚洲超碰狼人久久 | 国产av一区二区精品久久凹凸 | 大色综合色综合网站 | 亚洲国产成人a精品不卡在线 | 亚洲男女内射在线播放 | 国产真实乱对白精彩久久 | 亚洲精品成人av在线 | 成人动漫在线观看 | 亚洲人成网站免费播放 | 激情国产av做激情国产爱 | 精品无码国产一区二区三区av | a在线观看免费网站大全 | 久久久久成人片免费观看蜜芽 | 亚洲色在线无码国产精品不卡 | 久久久亚洲欧洲日产国码αv | 亚洲国产精华液网站w | 精品无人区无码乱码毛片国产 | 西西人体www44rt大胆高清 | 亚洲精品国产a久久久久久 | 亚无码乱人伦一区二区 | 天堂在线观看www | 对白脏话肉麻粗话av | 思思久久99热只有频精品66 | aⅴ亚洲 日韩 色 图网站 播放 | 荫蒂添的好舒服视频囗交 | 久久精品女人天堂av免费观看 | 男女超爽视频免费播放 | 日韩精品a片一区二区三区妖精 | 久久午夜无码鲁丝片秋霞 | 成人精品视频一区二区 | 国产精品a成v人在线播放 | 性生交大片免费看女人按摩摩 | 无码免费一区二区三区 | 亚洲一区二区三区在线观看网站 | 久久久亚洲欧洲日产国码αv | 成人性做爰aaa片免费看 | 国产极品视觉盛宴 | 亚洲无人区一区二区三区 | 领导边摸边吃奶边做爽在线观看 | 午夜精品一区二区三区的区别 | 国产麻豆精品一区二区三区v视界 | 国产免费久久久久久无码 | 一区二区三区乱码在线 | 欧洲 | 网友自拍区视频精品 | 奇米影视7777久久精品人人爽 | 国产精品久久久午夜夜伦鲁鲁 | 天堂а√在线中文在线 | 久久久久成人片免费观看蜜芽 | 国产一精品一av一免费 | 中文字幕乱码亚洲无线三区 | 成 人 免费观看网站 | 全球成人中文在线 | 十八禁真人啪啪免费网站 | 精品成人av一区二区三区 | 免费国产成人高清在线观看网站 | 婷婷丁香五月天综合东京热 | 国产一区二区三区精品视频 | 奇米影视7777久久精品 | 人人妻人人藻人人爽欧美一区 | 亚洲毛片av日韩av无码 | 国产成人综合美国十次 | 久久这里只有精品视频9 | 日日躁夜夜躁狠狠躁 | 狠狠噜狠狠狠狠丁香五月 | 亚洲国产欧美日韩精品一区二区三区 | 99久久婷婷国产综合精品青草免费 | 99久久精品午夜一区二区 | 久久99精品国产麻豆蜜芽 | 午夜性刺激在线视频免费 | 亚洲精品一区国产 | 国产精品人妻一区二区三区四 | 99久久久无码国产aaa精品 | 波多野结衣一区二区三区av免费 | 成人精品视频一区二区三区尤物 | 精品无码一区二区三区爱欲 | 粉嫩少妇内射浓精videos | 中国女人内谢69xxxxxa片 | 377p欧洲日本亚洲大胆 | 少妇无码吹潮 | 亚洲中文字幕在线观看 | 性欧美熟妇videofreesex | 无遮挡国产高潮视频免费观看 | 日日摸天天摸爽爽狠狠97 | 奇米影视888欧美在线观看 | 国产成人精品久久亚洲高清不卡 | 欧美黑人巨大xxxxx | 日本精品人妻无码77777 天堂一区人妻无码 | 野外少妇愉情中文字幕 | 精品厕所偷拍各类美女tp嘘嘘 | 亚洲毛片av日韩av无码 | 亚洲精品国产第一综合99久久 | 人妻aⅴ无码一区二区三区 | 亚洲人成网站色7799 | 亚洲 激情 小说 另类 欧美 | 亚洲毛片av日韩av无码 | 内射后入在线观看一区 | 人妻少妇被猛烈进入中文字幕 | 伊人久久大香线蕉午夜 | 中文无码精品a∨在线观看不卡 | 99久久亚洲精品无码毛片 | 亚洲人成网站在线播放942 | 麻豆人妻少妇精品无码专区 | 日本高清一区免费中文视频 | 乱码av麻豆丝袜熟女系列 | 人妻尝试又大又粗久久 | 波多野结衣av一区二区全免费观看 | 2020久久香蕉国产线看观看 | 中文字幕av日韩精品一区二区 | 亚洲 欧美 激情 小说 另类 | 人人妻人人澡人人爽人人精品浪潮 | 特大黑人娇小亚洲女 | 大肉大捧一进一出视频出来呀 | 美女极度色诱视频国产 | 国产一区二区不卡老阿姨 | 久久久久免费看成人影片 | 麻花豆传媒剧国产免费mv在线 | 欧美第一黄网免费网站 | 亚洲国产精品无码一区二区三区 | 久久熟妇人妻午夜寂寞影院 | 国产精品久久久 | 黄网在线观看免费网站 | 日日橹狠狠爱欧美视频 | 国产乱人伦av在线无码 | a在线亚洲男人的天堂 | 丁香花在线影院观看在线播放 | 日本熟妇人妻xxxxx人hd | 图片区 小说区 区 亚洲五月 | 午夜免费福利小电影 | 欧美精品一区二区精品久久 | 亚洲精品久久久久久一区二区 | 久久久久免费看成人影片 | 久久天天躁狠狠躁夜夜免费观看 | 乱人伦人妻中文字幕无码久久网 | 高潮喷水的毛片 | 人妻少妇精品无码专区二区 | 精品人人妻人人澡人人爽人人 | 动漫av一区二区在线观看 | 一本色道久久综合狠狠躁 | 狠狠色欧美亚洲狠狠色www | 精品少妇爆乳无码av无码专区 | 在线看片无码永久免费视频 | 欧洲美熟女乱又伦 | 亚洲欧美色中文字幕在线 | 国产suv精品一区二区五 | 成年美女黄网站色大免费全看 | 高清国产亚洲精品自在久久 | 成人免费视频在线观看 | 97se亚洲精品一区 | 97精品国产97久久久久久免费 | 无码人妻精品一区二区三区下载 | 亚洲一区二区三区无码久久 | 牲交欧美兽交欧美 | 内射巨臀欧美在线视频 | 欧美老妇交乱视频在线观看 | 一本色道久久综合亚洲精品不卡 | 蜜臀av无码人妻精品 | 亚洲成a人一区二区三区 | 亚洲国产欧美国产综合一区 | 四虎国产精品一区二区 | 帮老师解开蕾丝奶罩吸乳网站 | 中文字幕av无码一区二区三区电影 | 奇米影视7777久久精品 | 亚洲一区二区三区无码久久 | 久久国产36精品色熟妇 | 爆乳一区二区三区无码 | 好男人www社区 | 在线观看欧美一区二区三区 | 中国大陆精品视频xxxx | 久久久国产一区二区三区 | 国内揄拍国内精品少妇国语 | 国产成人无码av片在线观看不卡 | 午夜成人1000部免费视频 | 久久99精品久久久久久 | 久久久久亚洲精品中文字幕 | 国产特级毛片aaaaaaa高清 | 成熟人妻av无码专区 | 国产麻豆精品精东影业av网站 | 无码精品人妻一区二区三区av | 精品乱码久久久久久久 | 午夜不卡av免费 一本久久a久久精品vr综合 | 夜先锋av资源网站 | 老熟女重囗味hdxx69 | 亚洲色无码一区二区三区 | 亚洲男女内射在线播放 | 无码人妻少妇伦在线电影 | 亚洲国产精品久久人人爱 | 亚洲一区二区三区无码久久 | 荫蒂添的好舒服视频囗交 | 熟妇人妻无乱码中文字幕 | 玩弄人妻少妇500系列视频 | 亚洲精品综合五月久久小说 | 99re在线播放 | 国产麻豆精品一区二区三区v视界 | www一区二区www免费 | 99视频精品全部免费免费观看 | 九一九色国产 | 中文字幕无码人妻少妇免费 | 亚洲综合精品香蕉久久网 | 国产三级久久久精品麻豆三级 | 国产成人无码午夜视频在线观看 | 国产97在线 | 亚洲 | 免费观看黄网站 | 美女扒开屁股让男人桶 | 久久国产精品偷任你爽任你 | 日本饥渴人妻欲求不满 | 欧美成人高清在线播放 | 亚洲aⅴ无码成人网站国产app | 中文精品久久久久人妻不卡 | 丰满人妻一区二区三区免费视频 | 精品国产一区二区三区av 性色 | 中文精品久久久久人妻不卡 | 99久久99久久免费精品蜜桃 | √天堂资源地址中文在线 | а√天堂www在线天堂小说 | 日本在线高清不卡免费播放 | 国产一区二区三区日韩精品 | 亚洲成av人综合在线观看 | 99久久人妻精品免费一区 | 大胆欧美熟妇xx | 国产人妻精品午夜福利免费 | 扒开双腿疯狂进出爽爽爽视频 | 午夜精品久久久内射近拍高清 | 奇米影视7777久久精品人人爽 | 精品国产青草久久久久福利 | 中文字幕 人妻熟女 | 久久久久亚洲精品中文字幕 | 亚洲一区二区三区在线观看网站 | 欧美高清在线精品一区 | 性欧美疯狂xxxxbbbb | 国产精品内射视频免费 | 精品偷拍一区二区三区在线看 | 在线播放免费人成毛片乱码 | 99久久人妻精品免费二区 | 亚洲国产精品久久人人爱 | 色婷婷av一区二区三区之红樱桃 | 狠狠色丁香久久婷婷综合五月 | 综合网日日天干夜夜久久 | 国产精品无码永久免费888 | 四虎4hu永久免费 | 国产精品-区区久久久狼 | 欧美野外疯狂做受xxxx高潮 | 亚洲а∨天堂久久精品2021 | 中文字幕无码日韩欧毛 | 正在播放老肥熟妇露脸 | 野外少妇愉情中文字幕 | 成人免费视频视频在线观看 免费 | 亚洲欧美综合区丁香五月小说 | 国产热a欧美热a在线视频 | 久久久国产精品无码免费专区 | 性生交片免费无码看人 | 国产亚洲tv在线观看 | 国产精品美女久久久久av爽李琼 | 狂野欧美性猛xxxx乱大交 | av人摸人人人澡人人超碰下载 | 久久久久se色偷偷亚洲精品av | 狠狠色噜噜狠狠狠7777奇米 | 在线观看免费人成视频 | 久久久精品成人免费观看 | 男女下面进入的视频免费午夜 | 99久久精品无码一区二区毛片 | 亚洲中文无码av永久不收费 | 日韩欧美群交p片內射中文 | 精品久久综合1区2区3区激情 | 强辱丰满人妻hd中文字幕 | 日欧一片内射va在线影院 | 国产精品毛片一区二区 | 亚洲爆乳大丰满无码专区 | 亚洲欧美日韩成人高清在线一区 | 国产激情精品一区二区三区 | 欧美自拍另类欧美综合图片区 | 76少妇精品导航 | 日韩精品久久久肉伦网站 | 亚洲成av人综合在线观看 | 亚洲va欧美va天堂v国产综合 | 午夜免费福利小电影 | 亚洲日韩精品欧美一区二区 | 在线精品国产一区二区三区 | av无码不卡在线观看免费 | 精品乱码久久久久久久 | 大肉大捧一进一出好爽视频 | 亚洲成色www久久网站 | 成人免费视频在线观看 | 宝宝好涨水快流出来免费视频 | 熟妇人妻无乱码中文字幕 | 国产黄在线观看免费观看不卡 | 成人欧美一区二区三区 | 天堂无码人妻精品一区二区三区 | 风流少妇按摩来高潮 | 国产精品久久久久影院嫩草 | 未满成年国产在线观看 | 国产特级毛片aaaaaa高潮流水 | 亚洲熟妇自偷自拍另类 | 妺妺窝人体色www在线小说 | 无码帝国www无码专区色综合 | 亚洲日韩av一区二区三区中文 | 欧美日韩久久久精品a片 | 漂亮人妻洗澡被公强 日日躁 | 在线a亚洲视频播放在线观看 | 久久精品成人欧美大片 | 国精产品一品二品国精品69xx | 亚洲精品www久久久 | 中文字幕人成乱码熟女app | 青草视频在线播放 | 中文字幕精品av一区二区五区 | 久久久久久久人妻无码中文字幕爆 | 亚洲成av人在线观看网址 | 一本一道久久综合久久 | 国产区女主播在线观看 | 大肉大捧一进一出好爽视频 | 好爽又高潮了毛片免费下载 | 国产精品久久国产精品99 | 国产精品内射视频免费 | 在线观看国产午夜福利片 | 无码一区二区三区在线观看 | 秋霞特色aa大片 | 人妻有码中文字幕在线 | 国产色视频一区二区三区 | 亚洲精品无码人妻无码 | 给我免费的视频在线观看 | 粉嫩少妇内射浓精videos | 狂野欧美性猛xxxx乱大交 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 精品厕所偷拍各类美女tp嘘嘘 | 男人和女人高潮免费网站 | 亚洲中文字幕乱码av波多ji | 久久久久久a亚洲欧洲av冫 | 中文字幕无码人妻少妇免费 | aa片在线观看视频在线播放 | 国产又粗又硬又大爽黄老大爷视 | 亚洲日韩av一区二区三区中文 | 人妻有码中文字幕在线 | 曰韩无码二三区中文字幕 | 国产成人无码专区 | 国产欧美熟妇另类久久久 | 妺妺窝人体色www婷婷 | 亚洲а∨天堂久久精品2021 | aⅴ亚洲 日韩 色 图网站 播放 | 国产福利视频一区二区 | 亚洲综合精品香蕉久久网 | 无码国产激情在线观看 | 国产亚洲日韩欧美另类第八页 | 扒开双腿吃奶呻吟做受视频 | 人妻互换免费中文字幕 | 日本在线高清不卡免费播放 | 亚洲成色在线综合网站 | 天堂无码人妻精品一区二区三区 | 西西人体www44rt大胆高清 | 亚洲精品国偷拍自产在线观看蜜桃 | 在线精品亚洲一区二区 | 国产亚洲欧美在线专区 | 成 人 免费观看网站 | 精品一二三区久久aaa片 | 国产亚洲精品久久久ai换 | 精品厕所偷拍各类美女tp嘘嘘 | 精品欧美一区二区三区久久久 | 男女性色大片免费网站 | 少妇无套内谢久久久久 | 日本丰满熟妇videos | 国产亚洲tv在线观看 | 亚洲欧洲中文日韩av乱码 | 欧洲美熟女乱又伦 | 窝窝午夜理论片影院 | 高清不卡一区二区三区 | 国产又粗又硬又大爽黄老大爷视 | 成人无码精品一区二区三区 | 亚洲精品无码人妻无码 | 欧美 亚洲 国产 另类 | 欧美一区二区三区 | 国产两女互慰高潮视频在线观看 | 欧美国产日韩久久mv | 国精产品一品二品国精品69xx | 国产亚洲美女精品久久久2020 | 欧美性猛交内射兽交老熟妇 | 久青草影院在线观看国产 | 午夜无码区在线观看 | 欧美日韩精品 | 亚洲国产精华液网站w | 亚洲爆乳精品无码一区二区三区 | 日日碰狠狠丁香久燥 | 人人妻人人澡人人爽人人精品浪潮 | 欧美大屁股xxxxhd黑色 | 乱码av麻豆丝袜熟女系列 | 无码av免费一区二区三区试看 | 在线精品国产一区二区三区 | 天天av天天av天天透 | 99久久人妻精品免费二区 | 午夜福利一区二区三区在线观看 | 亚洲综合精品香蕉久久网 | 丰满少妇高潮惨叫视频 | 国产精品高潮呻吟av久久 | 国产一区二区不卡老阿姨 | 成熟人妻av无码专区 | 色五月丁香五月综合五月 | 久久综合网欧美色妞网 | av人摸人人人澡人人超碰下载 | 老熟妇仑乱视频一区二区 | 中文字幕中文有码在线 | 久久婷婷五月综合色国产香蕉 | 日韩欧美成人免费观看 | 国产亚洲日韩欧美另类第八页 | 三级4级全黄60分钟 | 亚洲va欧美va天堂v国产综合 | 欧美日韩综合一区二区三区 | 国产精品无码mv在线观看 | 国产在线精品一区二区高清不卡 | 少妇性俱乐部纵欲狂欢电影 | 欧美日韩色另类综合 | 成人三级无码视频在线观看 | 理论片87福利理论电影 | 精品久久综合1区2区3区激情 | 国产另类ts人妖一区二区 | 精品国产精品久久一区免费式 | 国产黄在线观看免费观看不卡 | 人妻少妇精品无码专区二区 | 性生交大片免费看女人按摩摩 | 特黄特色大片免费播放器图片 | 国精产品一区二区三区 | 伊人色综合久久天天小片 | 欧洲欧美人成视频在线 | 沈阳熟女露脸对白视频 | 亚洲日本在线电影 | 最新版天堂资源中文官网 | 欧美日韩久久久精品a片 | 少妇无套内谢久久久久 | 国产人妻人伦精品 | 东北女人啪啪对白 | 熟妇人妻激情偷爽文 | 亚洲男人av天堂午夜在 | 欧美精品免费观看二区 | 色五月丁香五月综合五月 | 欧美黑人乱大交 | 国产精品办公室沙发 | 国产精品毛多多水多 | 亚洲一区av无码专区在线观看 | 无码人妻av免费一区二区三区 | 成人三级无码视频在线观看 | 国产性生大片免费观看性 | 久久久久se色偷偷亚洲精品av | 日本饥渴人妻欲求不满 | 亚洲精品国偷拍自产在线观看蜜桃 | 97se亚洲精品一区 | v一区无码内射国产 | 又大又紧又粉嫩18p少妇 | 天天爽夜夜爽夜夜爽 | 亚洲精品一区二区三区婷婷月 | 欧美阿v高清资源不卡在线播放 | 亚洲国产av精品一区二区蜜芽 | 亚洲欧美综合区丁香五月小说 | 国产精品自产拍在线观看 | 亚洲国产精品无码一区二区三区 | 国产精品高潮呻吟av久久4虎 | 扒开双腿疯狂进出爽爽爽视频 | 兔费看少妇性l交大片免费 | 精品久久久久香蕉网 | 免费乱码人妻系列无码专区 | 99精品视频在线观看免费 | 久久久久国色av免费观看性色 | 美女黄网站人色视频免费国产 | 国产内射爽爽大片视频社区在线 | 国产精品无套呻吟在线 | 久久这里只有精品视频9 | 伦伦影院午夜理论片 | 欧美阿v高清资源不卡在线播放 | 无遮无挡爽爽免费视频 | 成人无码精品1区2区3区免费看 | 国产人妻大战黑人第1集 | 精品国产av色一区二区深夜久久 | 国产高清不卡无码视频 | 成人免费视频一区二区 | 秋霞成人午夜鲁丝一区二区三区 | 欧美变态另类xxxx | 中文字幕+乱码+中文字幕一区 | 熟妇女人妻丰满少妇中文字幕 | 亚洲国产av精品一区二区蜜芽 | 自拍偷自拍亚洲精品10p | 夜精品a片一区二区三区无码白浆 | 亚洲爆乳大丰满无码专区 | 在线观看欧美一区二区三区 | 日本一卡二卡不卡视频查询 | 思思久久99热只有频精品66 | 麻豆国产人妻欲求不满谁演的 | 岛国片人妻三上悠亚 | 成在人线av无码免观看麻豆 | 美女张开腿让人桶 | 亚洲色偷偷偷综合网 | 欧美亚洲国产一区二区三区 | 熟女俱乐部五十路六十路av | 欧美日韩一区二区三区自拍 | 精品乱子伦一区二区三区 | 欧美丰满熟妇xxxx | 九九久久精品国产免费看小说 | 中文字幕人妻无码一夲道 | 激情综合激情五月俺也去 | 国产片av国语在线观看 | 波多野结衣高清一区二区三区 | 熟妇女人妻丰满少妇中文字幕 | 九九在线中文字幕无码 | 暴力强奷在线播放无码 | 亚洲中文字幕在线无码一区二区 | 大乳丰满人妻中文字幕日本 | 无码人妻丰满熟妇区毛片18 | 无码毛片视频一区二区本码 | 少妇激情av一区二区 | 亚洲精品中文字幕乱码 | 无码帝国www无码专区色综合 | 国产精品无码一区二区三区不卡 | 亚洲呦女专区 | 亚洲人成网站色7799 | 黑人粗大猛烈进出高潮视频 | 亚洲va中文字幕无码久久不卡 | 丝袜美腿亚洲一区二区 | 亚洲中文字幕久久无码 | 亚洲成在人网站无码天堂 | 亚洲成av人片天堂网无码】 | 国产精品怡红院永久免费 | 亚拍精品一区二区三区探花 | 久久午夜夜伦鲁鲁片无码免费 | 成人欧美一区二区三区黑人免费 | 国产成人综合色在线观看网站 | 国内综合精品午夜久久资源 | 欧美黑人性暴力猛交喷水 | 日本www一道久久久免费榴莲 | 亚洲毛片av日韩av无码 | 亚洲无人区午夜福利码高清完整版 | 人人澡人人妻人人爽人人蜜桃 | 亚洲人成人无码网www国产 | 国产熟妇另类久久久久 | 欧美丰满熟妇xxxx性ppx人交 | 在线精品亚洲一区二区 | 亚洲欧美国产精品专区久久 | 人人妻人人澡人人爽欧美一区九九 | 亚洲色欲色欲欲www在线 | 日日麻批免费40分钟无码 | 伊人久久婷婷五月综合97色 | 色综合视频一区二区三区 | 狠狠色噜噜狠狠狠狠7777米奇 | 67194成是人免费无码 | 国产精品国产三级国产专播 | 亚洲熟妇色xxxxx欧美老妇 | av无码电影一区二区三区 | 一区二区三区高清视频一 | 性开放的女人aaa片 | 国产成人精品一区二区在线小狼 | 久久综合狠狠综合久久综合88 | 国产精品国产自线拍免费软件 | 亚洲国产精品一区二区第一页 | 亚洲精品综合五月久久小说 | 人妻与老人中文字幕 | 国产成人无码av在线影院 | 99久久人妻精品免费一区 | 国内精品人妻无码久久久影院 | 精品久久久久香蕉网 | 国产熟女一区二区三区四区五区 | 漂亮人妻洗澡被公强 日日躁 | 男人扒开女人内裤强吻桶进去 | 久久熟妇人妻午夜寂寞影院 | 一本无码人妻在中文字幕免费 | 午夜无码区在线观看 | 亚洲国产成人av在线观看 | 一区二区三区高清视频一 | 无遮挡啪啪摇乳动态图 | 四虎4hu永久免费 | 一区二区三区高清视频一 | 亚洲精品成人av在线 | 久久久久免费精品国产 | 国产人妻大战黑人第1集 | 日日碰狠狠丁香久燥 | 天堂无码人妻精品一区二区三区 | 国产一区二区三区影院 | 欧美性猛交内射兽交老熟妇 | 在线观看国产一区二区三区 | 成人无码精品一区二区三区 | 国产热a欧美热a在线视频 | 精品无码一区二区三区的天堂 | 天海翼激烈高潮到腰振不止 | 理论片87福利理论电影 | 亚洲中文字幕在线无码一区二区 | 大乳丰满人妻中文字幕日本 | 亚洲精品一区三区三区在线观看 | 午夜不卡av免费 一本久久a久久精品vr综合 | 国产成人久久精品流白浆 | 又色又爽又黄的美女裸体网站 | 四虎国产精品免费久久 | 人人妻人人藻人人爽欧美一区 | 欧美人与善在线com | 国产激情艳情在线看视频 | 国内老熟妇对白xxxxhd | 午夜福利不卡在线视频 | 国产农村妇女高潮大叫 | 久久99精品国产.久久久久 | 色综合久久88色综合天天 | 色婷婷综合激情综在线播放 | 精品无码成人片一区二区98 | 无码av免费一区二区三区试看 | 学生妹亚洲一区二区 | 荫蒂添的好舒服视频囗交 | 亚洲娇小与黑人巨大交 | 伊人久久婷婷五月综合97色 | 麻豆精产国品 | 亚洲中文字幕无码中字 | 成人影院yy111111在线观看 | 亚洲中文字幕无码一久久区 | 色老头在线一区二区三区 | 久久天天躁狠狠躁夜夜免费观看 | 99re在线播放 | 捆绑白丝粉色jk震动捧喷白浆 | 性欧美熟妇videofreesex | 毛片内射-百度 | 捆绑白丝粉色jk震动捧喷白浆 | 国内精品久久毛片一区二区 | 国产成人无码午夜视频在线观看 | 熟妇人妻激情偷爽文 | 国精品人妻无码一区二区三区蜜柚 | 国产精品成人av在线观看 | 三上悠亚人妻中文字幕在线 | 国内精品人妻无码久久久影院 | 日韩av无码一区二区三区 | 精品久久综合1区2区3区激情 | 亚洲欧美精品aaaaaa片 | 久久婷婷五月综合色国产香蕉 | 免费中文字幕日韩欧美 | 欧美激情综合亚洲一二区 | 人妻夜夜爽天天爽三区 | 中文字幕乱码中文乱码51精品 | 一本久久a久久精品亚洲 | 色婷婷av一区二区三区之红樱桃 | 成人无码精品1区2区3区免费看 | 国产一区二区不卡老阿姨 | 丰满诱人的人妻3 | 亚洲区小说区激情区图片区 | 久久综合久久自在自线精品自 | 久久无码中文字幕免费影院蜜桃 | 99久久亚洲精品无码毛片 | yw尤物av无码国产在线观看 | 无码精品国产va在线观看dvd | 国产人成高清在线视频99最全资源 | 久热国产vs视频在线观看 | 国精产品一品二品国精品69xx | 兔费看少妇性l交大片免费 | 久久精品国产99精品亚洲 | 无码av中文字幕免费放 | 日本肉体xxxx裸交 | 乱中年女人伦av三区 | 亚洲中文无码av永久不收费 | 无码人妻出轨黑人中文字幕 | 无码精品国产va在线观看dvd | 少妇被黑人到高潮喷出白浆 | 粗大的内捧猛烈进出视频 | 亚洲性无码av中文字幕 | 人妻少妇精品无码专区二区 | 娇妻被黑人粗大高潮白浆 | 亚洲精品中文字幕乱码 | 无码国产乱人伦偷精品视频 | 玩弄少妇高潮ⅹxxxyw | 国产成人无码区免费内射一片色欲 | 国内揄拍国内精品人妻 | 99久久精品午夜一区二区 | 国产特级毛片aaaaaa高潮流水 | 最近的中文字幕在线看视频 | 国产精品无码mv在线观看 | 18精品久久久无码午夜福利 | 欧美黑人性暴力猛交喷水 | 天堂а√在线地址中文在线 | 无码国产激情在线观看 | 久久久成人毛片无码 | 又大又硬又爽免费视频 | 国产av人人夜夜澡人人爽麻豆 | 2020久久香蕉国产线看观看 | 亚洲综合久久一区二区 | 女人色极品影院 | 久久精品99久久香蕉国产色戒 | 红桃av一区二区三区在线无码av | 亚洲精品一区国产 | 欧美喷潮久久久xxxxx | 亚洲中文字幕无码中文字在线 | 亚洲日本在线电影 | 亚洲精品综合五月久久小说 | 国精品人妻无码一区二区三区蜜柚 | 欧美zoozzooz性欧美 | 无遮挡啪啪摇乳动态图 | 国产精品久久福利网站 | 色婷婷欧美在线播放内射 | 亚洲の无码国产の无码步美 | 国产性生交xxxxx无码 | 国产无遮挡又黄又爽免费视频 | 成人片黄网站色大片免费观看 | 丰满岳乱妇在线观看中字无码 | 一本久道高清无码视频 | 99精品久久毛片a片 | 偷窥村妇洗澡毛毛多 | 在线播放免费人成毛片乱码 | 国内精品九九久久久精品 | 亚洲 a v无 码免 费 成 人 a v | 久久久中文久久久无码 | 人妻熟女一区 | 欧美猛少妇色xxxxx | 伊在人天堂亚洲香蕉精品区 | 久久久久成人片免费观看蜜芽 | 日产国产精品亚洲系列 | 国产做国产爱免费视频 | 亚洲高清偷拍一区二区三区 | 日本免费一区二区三区最新 | 在线亚洲高清揄拍自拍一品区 | 国精品人妻无码一区二区三区蜜柚 | 免费观看激色视频网站 | 中文精品无码中文字幕无码专区 | 国产69精品久久久久app下载 | 一本大道久久东京热无码av | 国色天香社区在线视频 | 人妻中文无码久热丝袜 | 麻豆国产人妻欲求不满谁演的 | 日本欧美一区二区三区乱码 | 麻豆蜜桃av蜜臀av色欲av | 国产艳妇av在线观看果冻传媒 | 国产成人午夜福利在线播放 | 爆乳一区二区三区无码 | 人人澡人人透人人爽 | 伊在人天堂亚洲香蕉精品区 | 精品无人区无码乱码毛片国产 | 婷婷综合久久中文字幕蜜桃三电影 | 欧美日韩人成综合在线播放 | 国产欧美熟妇另类久久久 | 美女毛片一区二区三区四区 | 亚洲gv猛男gv无码男同 | 天天燥日日燥 | 岛国片人妻三上悠亚 | 亚洲精品综合五月久久小说 | 无码乱肉视频免费大全合集 | 中文字幕av日韩精品一区二区 | 国语自产偷拍精品视频偷 | 波多野结衣aⅴ在线 | 成人无码精品1区2区3区免费看 | 婷婷六月久久综合丁香 | 免费中文字幕日韩欧美 | 欧美黑人性暴力猛交喷水 | 一本一道久久综合久久 | 国产又粗又硬又大爽黄老大爷视 | 亚洲最大成人网站 | 波多野结衣乳巨码无在线观看 | 六月丁香婷婷色狠狠久久 | 亚洲色欲色欲天天天www | 国产午夜精品一区二区三区嫩草 | 麻豆md0077饥渴少妇 | 亚洲中文无码av永久不收费 | 永久免费观看国产裸体美女 | 国内精品人妻无码久久久影院 | 日本一区二区三区免费播放 | 东北女人啪啪对白 | 国产成人无码区免费内射一片色欲 | 日韩人妻系列无码专区 | 丰满人妻精品国产99aⅴ | 亚洲色在线无码国产精品不卡 | 国产精品久久久久7777 | 日韩视频 中文字幕 视频一区 | 亚洲国产日韩a在线播放 | 色情久久久av熟女人妻网站 | 国内精品九九久久久精品 | 国产精品国产自线拍免费软件 | 激情五月综合色婷婷一区二区 | 成人免费无码大片a毛片 | 久久午夜无码鲁丝片秋霞 | 欧美人妻一区二区三区 | 欧美性生交xxxxx久久久 | 亚洲成a人片在线观看无码3d |