国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

外賣騎手一面,也很不容易!

共 9839字,需瀏覽 20分鐘

 ·

2023-09-01 11:20

3786d4c1cd3d884219fc42598eb24ea5.webp

圖解學(xué)習(xí)網(wǎng)站: xiaolincoding.com

大家好,我是小林。

校招生通常都是一張白紙,所以校招面試過程中,面試官通常都會(huì)比較傾向問一些基礎(chǔ)知識(shí),比如 Java、mysql、Redis、網(wǎng)絡(luò)、操作系統(tǒng)、數(shù)據(jù)結(jié)構(gòu)與算法這些底層的原理知識(shí),看你在學(xué)校學(xué)習(xí)的內(nèi)容,你是否能夠真的掌握了。

今天就分享一個(gè)重點(diǎn)在數(shù)據(jù)結(jié)構(gòu)考察比較多的美團(tuán)Java后端面經(jīng),從常見的數(shù)據(jù)結(jié)構(gòu)->Java 集合>MySQL B+樹->Redis 數(shù)據(jù)結(jié)構(gòu)。所以,這是一場比較重基礎(chǔ)的后端面試,問題也比較多,面試時(shí)長超過 1 小時(shí)了,還挺艱難的。

數(shù)據(jù)結(jié)構(gòu)

LRU是什么?如何實(shí)現(xiàn)?

LRU 是一種緩存淘汰算法,當(dāng)緩存空間已滿時(shí),優(yōu)先淘汰最長時(shí)間未被訪問的數(shù)據(jù)。

實(shí)現(xiàn)的方式是哈希表+雙向鏈表結(jié)合。

d84e9a5b09b5c8bb620be5c6323dc810.webpLRU

具體實(shí)現(xiàn)步驟如下:

  • 使用哈希表存儲(chǔ)數(shù)據(jù)的鍵值對(duì),鍵為緩存的鍵,值為對(duì)應(yīng)的節(jié)點(diǎn)。

  • 使用雙向鏈表存儲(chǔ)數(shù)據(jù)節(jié)點(diǎn),鏈表頭部為最近訪問的節(jié)點(diǎn),鏈表尾部為最久未訪問的節(jié)點(diǎn)。

  • 當(dāng)數(shù)據(jù)被訪問時(shí),如果數(shù)據(jù)存在于緩存中,則將對(duì)應(yīng)節(jié)點(diǎn)移動(dòng)到鏈表頭部;如果數(shù)據(jù)不存在于緩存中,則將數(shù)據(jù)添加到緩存中,同時(shí)創(chuàng)建一個(gè)新節(jié)點(diǎn)并插入到鏈表頭部。

  • 當(dāng)緩存空間已滿時(shí),需要淘汰最久未訪問的節(jié)點(diǎn),即鏈表尾部的節(jié)點(diǎn)。

上面這種思想方式,LRU 算法可以在 O(1) 的時(shí)間復(fù)雜度內(nèi)實(shí)現(xiàn)數(shù)據(jù)的插入、查找和刪除操作。每次訪問數(shù)據(jù)時(shí),都會(huì)將對(duì)應(yīng)的節(jié)點(diǎn)移動(dòng)到鏈表頭部,保證鏈表頭部的節(jié)點(diǎn)是最近訪問的數(shù)據(jù),而鏈表尾部的節(jié)點(diǎn)是最久未訪問的數(shù)據(jù)。當(dāng)緩存空間不足時(shí),淘汰鏈表尾部的節(jié)點(diǎn)即可。

平衡二叉樹結(jié)構(gòu)是怎么樣的?

平衡二叉樹是在二叉搜索樹的基礎(chǔ)上,平衡二叉樹還需要滿足如下條件:

  • 左右兩個(gè)子樹的高度差(平衡因子)的絕對(duì)值不超過1
  • 左右兩個(gè)子樹都是一棵平衡二叉樹
a7827eef0dbcf8e945d0c576d389542c.webpimg

分析:

  • 圖一是一個(gè)平衡二叉樹,它滿足平衡二叉樹的定義。

  • 圖二不是平衡二叉樹,其原因并不是不滿足平衡因子的條件,而是因?yàn)樗粷M足二叉搜索樹的構(gòu)成條件,這提醒我們平衡二叉樹首先要是一棵二叉搜索樹。

  • 圖三滿足平衡二叉樹的構(gòu)成條件。

  • 圖 4 中的節(jié)點(diǎn) (8) 平衡因子為 3,不滿足平衡二叉樹的要求。

堆是什么?

堆是一顆完全二叉樹,這樣實(shí)現(xiàn)的堆也被稱為二叉堆。堆中節(jié)點(diǎn)的值都大于等于(或小于等于)其子節(jié)點(diǎn)的值,堆中如果節(jié)點(diǎn)的值都大于等于其子節(jié)點(diǎn)的值,我們把它稱為大頂堆,如果都小于等于其子節(jié)點(diǎn)的值,我們將其稱為小頂堆。

下圖中,1,2 是大頂堆,3 是小頂堆, 4 不是堆(不是完全二叉樹)

31b76d9b2422e2af494c7ad23e9624bf.webpimg

棧和隊(duì)列,舉個(gè)使用場景例子

7728df8b069ff79771cda2b473365dff.webpWhat is Stack and Queue
  • 棧是一種后進(jìn)先出(LIFO)的數(shù)據(jù)結(jié)構(gòu),函數(shù)的調(diào)用和返回往往使用棧來管理函數(shù)調(diào)用的順序。
  • 隊(duì)列是一種先進(jìn)先出(FIFO)的數(shù)據(jù)結(jié)構(gòu),類似于排隊(duì)等待的隊(duì)伍,先到的人會(huì)先被服務(wù)。隊(duì)列常用于需要先進(jìn)先出的場景,例如:在網(wǎng)絡(luò)通信或磁盤讀寫等場景中,使用隊(duì)列來管理數(shù)據(jù)的接收和發(fā)送順序,以平衡生產(chǎn)者和消費(fèi)者之間的速度差異。

Java

HashMap 是怎么實(shí)現(xiàn)的?

7575dda2973a599a30d380145b996439.webpimg

存儲(chǔ)對(duì)象時(shí),我們將K/V傳給put方法時(shí),它調(diào)用hashCode計(jì)算hash從而得到bucket位置,進(jìn)一步存儲(chǔ),HashMap會(huì)根據(jù)當(dāng)前bucket的占用情況自動(dòng)調(diào)整容量(超過Load Facotr則resize為原來的2倍)。

獲取對(duì)象時(shí),我們將K傳給get,它調(diào)用hashCode計(jì)算hash從而得到bucket位置,并進(jìn)一步調(diào)用equals()方法確定鍵值對(duì)。如果發(fā)生碰撞的時(shí)候,Hashmap通過鏈表將產(chǎn)生碰撞沖突的元素組織起來,在Java 8中,如果一個(gè)bucket中碰撞沖突的元素超過某個(gè)限制(默認(rèn)是8),則使用紅黑樹來替換鏈表,從而提高速度。

HashMap 擴(kuò)容過程中鏈表如何遷移到新的位置?

擴(kuò)容分為2步:

  • 第1步是對(duì)哈希表長度的擴(kuò)展(2倍)
  • 第2步是將舊哈希表中的數(shù)據(jù)放到新的哈希表中。

因?yàn)槲覀兪褂玫氖?次冪的擴(kuò)展(指長度擴(kuò)為原來2倍),所以,元素的位置要么是在原位置,要么是在原位置再移動(dòng)2次冪的位置。

如我們從16擴(kuò)展為32時(shí),具體的變化如下所示:

2a1c0cc78f15c3789bf49c1c8c4f08ef.webprehash

因此元素在重新計(jì)算hash之后,因?yàn)閚變?yōu)?倍,那么n-1的mask范圍在高位多1bit(紅色),因此新的index就會(huì)發(fā)生這樣的變化:

70634842d814fab89699eda7dc794c6b.webpresize

因此,我們?cè)跀U(kuò)充HashMap的時(shí)候,不需要重新計(jì)算hash,只需要看看原來的hash值新增的那個(gè)bit是1還是0就好了,是0的話索引沒變,是1的話索引變成“原索引+oldCap”??梢钥纯聪聢D為16擴(kuò)充為32的resize示意圖:

20c707215a0fb6a7a47e6cb9af48bf31.webpresize16-32

這個(gè)設(shè)計(jì)確實(shí)非常的巧妙,既省去了重新計(jì)算hash值的時(shí)間,而且同時(shí),由于新增的1bit是0還是1可以認(rèn)為是隨機(jī)的,因此resize的過程,均勻的把之前的沖突的節(jié)點(diǎn)分散到新的bucket了。

HashMap  為什么線程不安全?

兩個(gè)線程執(zhí)行put()操作時(shí),可能導(dǎo)致數(shù)據(jù)覆蓋。

假設(shè)A、B兩個(gè)線程同時(shí)執(zhí)行put()操作,且兩個(gè)key都指向同一個(gè)buekct,那么此時(shí)兩個(gè)結(jié)點(diǎn),都會(huì)做頭插法。當(dāng)線程A和線程B都獲取到了bucket的頭結(jié)點(diǎn)后,若此時(shí)線程A的時(shí)間片用完,線程B將其新數(shù)據(jù)完成了頭插法操作,此時(shí)輪到線程A操作,但這時(shí)線程A所據(jù)有的舊頭結(jié)點(diǎn)已經(jīng)過時(shí)了(并未包含線程B剛插入的新結(jié)點(diǎn)),線程A再做頭插法操作,就會(huì)抹掉B剛剛新增的結(jié)點(diǎn),導(dǎo)致數(shù)據(jù)丟失。

CurrentHashMap 怎么保證線程安全的?

在JDK7版本及以前,**ConcurrentHashMap**類使用了分段鎖的技術(shù)(segment + Lock),但在jdk8之后,也做了較大改動(dòng),使用回了synchronized修飾符。

JDK1.8中的ConcurrentHashMap不再使用Segment分段鎖,而是以table數(shù)組的頭結(jié)點(diǎn)作為synchronized的鎖。

ConcurrentHashMap保證線程安全主要有三個(gè)地方。

  • 使用volatile保證當(dāng)Node中的值變化時(shí)對(duì)于其他線程是可見的
  • 使用table數(shù)組的頭結(jié)點(diǎn)作為synchronized的鎖來保證寫操作的安全
  • 頭結(jié)點(diǎn)為null時(shí),使用CAS操作來保證數(shù)據(jù)能正確的寫入。

MySQL

MySQL為什么InnoDB是默認(rèn)引擎?

InnoDB引擎在事務(wù)支持、并發(fā)性能、崩潰恢復(fù)等方面具有優(yōu)勢,因此被MySQL選擇為默認(rèn)的存儲(chǔ)引擎。

  • 事務(wù)支持:InnoDB引擎提供了對(duì)事務(wù)的支持,可以進(jìn)行ACID(原子性、一致性、隔離性、持久性)屬性的操作。Myisam存儲(chǔ)引擎是不支持事務(wù)的。
  • 并發(fā)性能:InnoDB引擎采用了行級(jí)鎖定的機(jī)制,可以提供更好的并發(fā)性能,Myisam存儲(chǔ)引擎只支持表鎖,鎖的粒度比較大。
  • 崩潰恢復(fù):InnoDB引引擎通過 redolog 日志實(shí)現(xiàn)了崩潰恢復(fù),可以在數(shù)據(jù)庫發(fā)生異常情況(如斷電)時(shí),通過日志文件進(jìn)行恢復(fù),保證數(shù)據(jù)的持久性和一致性。Myisam是不支持崩潰恢復(fù)的。

MySQL為什么使用B+ 樹?

MySQL 是會(huì)將數(shù)據(jù)持久化在硬盤,而存儲(chǔ)功能是由 MySQL 存儲(chǔ)引擎實(shí)現(xiàn)的,所以討論 MySQL 使用哪種數(shù)據(jù)結(jié)構(gòu)作為索引,實(shí)際上是在討論存儲(chǔ)引使用哪種數(shù)據(jù)結(jié)構(gòu)作為索引,InnoDB 是 MySQL 默認(rèn)的存儲(chǔ)引擎,它就是采用了 B+ 樹作為索引的數(shù)據(jù)結(jié)構(gòu)。

要設(shè)計(jì)一個(gè) MySQL 的索引數(shù)據(jù)結(jié)構(gòu),不僅僅考慮數(shù)據(jù)結(jié)構(gòu)增刪改的時(shí)間復(fù)雜度,更重要的是要考慮磁盤 I/0 的操作次數(shù)。因?yàn)樗饕陀涗浂际谴娣旁谟脖P,硬盤是一個(gè)非常慢的存儲(chǔ)設(shè)備,我們?cè)诓樵償?shù)據(jù)的時(shí)候,最好能在盡可能少的磁盤 I/0 的操作次數(shù)內(nèi)完成。

二分查找樹雖然是一個(gè)天然的二分結(jié)構(gòu),能很好的利用二分查找快速定位數(shù)據(jù),但是它存在一種極端的情況,每當(dāng)插入的元素都是樹內(nèi)最大的元素,就會(huì)導(dǎo)致二分查找樹退化成一個(gè)鏈表,此時(shí)查詢復(fù)雜度就會(huì)從 O(logn)降低為 O(n)。

為了解決二分查找樹退化成鏈表的問題,就出現(xiàn)了自平衡二叉樹,保證了查詢操作的時(shí)間復(fù)雜度就會(huì)一直維持在 O(logn) 。但是它本質(zhì)上還是一個(gè)二叉樹,每個(gè)節(jié)點(diǎn)只能有 2 個(gè)子節(jié)點(diǎn),隨著元素的增多,樹的高度會(huì)越來越高。

而樹的高度決定于磁盤 I/O 操作的次數(shù),因?yàn)闃涫谴鎯?chǔ)在磁盤中的,訪問每個(gè)節(jié)點(diǎn),都對(duì)應(yīng)一次磁盤 I/O 操作,也就是說樹的高度就等于每次查詢數(shù)據(jù)時(shí)磁盤 IO 操作的次數(shù),所以樹的高度越高,就會(huì)影響查詢性能。

B 樹和 B+ 都是通過多叉樹的方式,會(huì)將樹的高度變矮,所以這兩個(gè)數(shù)據(jù)結(jié)構(gòu)非常適合檢索存于磁盤中的數(shù)據(jù)。

但是 MySQL 默認(rèn)的存儲(chǔ)引擎 InnoDB 采用的是 B+ 作為索引的數(shù)據(jù)結(jié)構(gòu)。原因有:

  • B+ 樹的非葉子節(jié)點(diǎn)不存放實(shí)際的記錄數(shù)據(jù),僅存放索引,因此數(shù)據(jù)量相同的情況下,相比存儲(chǔ)即存索引又存記錄的 B 樹,B+樹的非葉子節(jié)點(diǎn)可以存放更多的索引,因此 B+ 樹可以比 B 樹更「矮胖」,查詢底層節(jié)點(diǎn)的磁盤 I/O次數(shù)會(huì)更少。
  • B+ 樹有大量的冗余節(jié)點(diǎn)(所有非葉子節(jié)點(diǎn)都是冗余索引),這些冗余索引讓 B+ 樹在插入、刪除的效率都更高,比如刪除根節(jié)點(diǎn)的時(shí)候,不會(huì)像 B 樹那樣會(huì)發(fā)生復(fù)雜的樹的變化;
  • B+ 樹葉子節(jié)點(diǎn)之間用鏈表連接了起來,有利于范圍查詢,而 B 樹要實(shí)現(xiàn)范圍查詢,因此只能通過樹的遍歷來完成范圍查詢,這會(huì)涉及多個(gè)節(jié)點(diǎn)的磁盤 I/O 操作,范圍查詢效率不如 B+ 樹。

B+樹的葉子節(jié)點(diǎn)鏈表是單向還是雙向?

雙向的,為了實(shí)現(xiàn)倒序遍歷或者排序。

3707b9d5d609e1585470e8c774a2982f.webp圖片

Innodb 使用的 B+ 樹有一些特別的點(diǎn),比如:

  • B+ 樹的葉子節(jié)點(diǎn)之間是用「雙向鏈表」進(jìn)行連接,這樣的好處是既能向右遍歷,也能向左遍歷。
  • B+ 樹點(diǎn)節(jié)點(diǎn)內(nèi)容是數(shù)據(jù)頁,數(shù)據(jù)頁里存放了用戶的記錄以及各種信息,每個(gè)數(shù)據(jù)頁默認(rèn)大小是 16 KB。

Innodb 根據(jù)索引類型不同,分為聚集和二級(jí)索引。他們區(qū)別在于,聚集索引的葉子節(jié)點(diǎn)存放的是實(shí)際數(shù)據(jù),所有完整的用戶記錄都存放在聚集索引的葉子節(jié)點(diǎn),而二級(jí)索引的葉子節(jié)點(diǎn)存放的是主鍵值,而不是實(shí)際數(shù)據(jù)。

因?yàn)楸淼臄?shù)據(jù)都是存放在聚集索引的葉子節(jié)點(diǎn)里,所以 InnoDB 存儲(chǔ)引擎一定會(huì)為表創(chuàng)建一個(gè)聚集索引,且由于數(shù)據(jù)在物理上只會(huì)保存一份,所以聚簇索引只能有一個(gè),而二級(jí)索引可以創(chuàng)建多個(gè)。

MVCC是什么?作用?

MVCC 是多版本并發(fā)控制,MVCC保證了事務(wù)之間的隔離性,事務(wù)只能看到已經(jīng)提交的數(shù)據(jù)版本,從而保證了數(shù)據(jù)的一致性,并且避免了事務(wù)讀寫并發(fā)的問題,因?yàn)?select 快照讀是不會(huì)加鎖的。

可重復(fù)讀隔離級(jí)別是開啟事務(wù),執(zhí)行第一個(gè) select 查詢的時(shí)候,會(huì)創(chuàng)建 Read View,然后整個(gè)事務(wù)期間都在用這個(gè) Read View。讀提交隔離級(jí)別是在每次select 查詢時(shí),都會(huì)生成一個(gè)新的 Read View。

在創(chuàng)建 Read View 后,我們可以將記錄中的 trx_id 劃分這三種情況:

694c82fa401349e8a3a94f3a7bf780c3.webpimg

一個(gè)事務(wù)去訪問記錄的時(shí)候,除了自己的更新記錄總是可見之外,還有這幾種情況:

  • 如果記錄的 trx_id 值小于 Read View 中的 min_trx_id 值,表示這個(gè)版本的記錄是在創(chuàng)建 Read View 已經(jīng)提交的事務(wù)生成的,所以該版本的記錄對(duì)當(dāng)前事務(wù)可見。
  • 如果記錄的 trx_id 值大于等于 Read View 中的 max_trx_id 值,表示這個(gè)版本的記錄是在創(chuàng)建 Read View 才啟動(dòng)的事務(wù)生成的,所以該版本的記錄對(duì)當(dāng)前事務(wù)不可見。
  • 如果記錄的 trx_id 值在 Read View 的 min_trx_id 和 max_trx_id之間,需要判斷 trx_id 是否在 m_ids 列表中:
    • 如果記錄的 trx_id m_ids 列表中,表示生成該版本記錄的活躍事務(wù)依然活躍著(還沒提交事務(wù)),所以該版本的記錄對(duì)當(dāng)前事務(wù)不可見。
    • 如果記錄的 trx_id 不在 m_ids列表中,表示生成該版本記錄的活躍事務(wù)已經(jīng)被提交,所以該版本的記錄對(duì)當(dāng)前事務(wù)可見

更新是如何保證一致的?

更新屬于當(dāng)前讀,會(huì)加X型的行級(jí)鎖,是通過鎖來保證一致性的。

比如,事務(wù) A 執(zhí)行對(duì)一條 id = 1 的記錄進(jìn)行了更新,其他事務(wù)如果想更新或者刪除這條記錄的話,會(huì)發(fā)生阻塞,只有當(dāng)事務(wù) a 提交了事務(wù)才會(huì)釋放鎖。

如何回滾一條記錄?undo log具體怎么回滾?

事務(wù)執(zhí)行過程中,執(zhí)行 rollback 語句就能回滾事務(wù)了。

每當(dāng) InnoDB 引擎對(duì)一條記錄進(jìn)行操作(修改、刪除、新增)時(shí),要把回滾時(shí)需要的信息都記錄到 undo log 里,比如:

  • 插入一條記錄時(shí),要把這條記錄的主鍵值記下來,這樣之后回滾時(shí)只需要把這個(gè)主鍵值對(duì)應(yīng)的記錄刪掉就好了;
  • 刪除一條記錄時(shí),要把這條記錄中的內(nèi)容都記下來,這樣之后回滾時(shí)再把由這些內(nèi)容組成的記錄插入到表中就好了;
  • 更新一條記錄時(shí),要把被更新的列的舊值記下來,這樣之后回滾時(shí)再把這些列更新為舊值就好了。

在發(fā)生回滾時(shí),就讀取 undo log 里的數(shù)據(jù),然后做原先相反操作。比如當(dāng) delete 一條記錄時(shí),undo log 中會(huì)把記錄中的內(nèi)容都記下來,然后執(zhí)行回滾操作的時(shí)候,就讀取 undo log 里的數(shù)據(jù),然后進(jìn)行 insert 操作。

如何查詢慢sql產(chǎn)生的原因?

可以通過慢查詢?nèi)罩緛矶ㄎ宦?sql 語句。

索引失效的情況有哪些?

6 種會(huì)發(fā)生索引失效的情況:

  • 當(dāng)我們使用左或者左右模糊匹配的時(shí)候,也就是 like %xx 或者 like %xx%這兩種方式都會(huì)造成索引失效;
  • 當(dāng)我們?cè)诓樵儣l件中對(duì)索引列使用函數(shù),就會(huì)導(dǎo)致索引失效。
  • 當(dāng)我們?cè)诓樵儣l件中對(duì)索引列進(jìn)行表達(dá)式計(jì)算,也是無法走索引的。
  • MySQL 在遇到字符串和數(shù)字比較的時(shí)候,會(huì)自動(dòng)把字符串轉(zhuǎn)為數(shù)字,然后再進(jìn)行比較。如果字符串是索引列,而條件語句中的輸入?yún)?shù)是數(shù)字的話,那么索引列會(huì)發(fā)生隱式類型轉(zhuǎn)換,由于隱式類型轉(zhuǎn)換是通過 CAST 函數(shù)實(shí)現(xiàn)的,等同于對(duì)索引列使用了函數(shù),所以就會(huì)導(dǎo)致索引失效。
  • 聯(lián)合索引要能正確使用需要遵循最左匹配原則,也就是按照最左優(yōu)先的方式進(jìn)行索引的匹配,否則就會(huì)導(dǎo)致索引失效。
  • 在 WHERE 子句中,如果在 OR 前的條件列是索引列,而在 OR 后的條件列不是索引列,那么索引會(huì)失效。

Redis

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

Redis 提供了豐富的數(shù)據(jù)類型,常見的有五種數(shù)據(jù)類型:String(字符串),Hash(哈希),List(列表),Set(集合)、Zset(有序集合)。

ab6a50dc1f74bc178c57ac3d778de823.webpimg 46968cfde09ad9584885e9751f577a2f.webpimg

隨著 Redis 版本的更新,后面又支持了四種數(shù)據(jù)類型:BitMap(2.2 版新增)、HyperLogLog(2.8 版新增)、GEO(3.2 版新增)、Stream(5.0 版新增)。Redis 五種數(shù)據(jù)類型的應(yīng)用場景:

  • String 類型的應(yīng)用場景:緩存對(duì)象、常規(guī)計(jì)數(shù)、分布式鎖、共享 session 信息等。
  • List 類型的應(yīng)用場景:消息隊(duì)列(但是有兩個(gè)問題:1. 生產(chǎn)者需要自行實(shí)現(xiàn)全局唯一 ID;2. 不能以消費(fèi)組形式消費(fèi)數(shù)據(jù))等。
  • Hash 類型:緩存對(duì)象、購物車等。
  • Set 類型:聚合計(jì)算(并集、交集、差集)場景,比如點(diǎn)贊、共同關(guān)注、抽獎(jiǎng)活動(dòng)等。
  • Zset 類型:排序場景,比如排行榜、電話和姓名排序等。

Redis 后續(xù)版本又支持四種數(shù)據(jù)類型,它們的應(yīng)用場景如下:

  • BitMap(2.2 版新增):二值狀態(tài)統(tǒng)計(jì)的場景,比如簽到、判斷用戶登陸狀態(tài)、連續(xù)簽到用戶總數(shù)等;
  • HyperLogLog(2.8 版新增):海量數(shù)據(jù)基數(shù)統(tǒng)計(jì)的場景,比如百萬級(jí)網(wǎng)頁 UV 計(jì)數(shù)等;
  • GEO(3.2 版新增):存儲(chǔ)地理位置信息的場景,比如滴滴叫車;
  • Stream(5.0 版新增):消息隊(duì)列,相比于基于 List 類型實(shí)現(xiàn)的消息隊(duì)列,有這兩個(gè)特有的特性:自動(dòng)生成全局唯一消息ID,支持以消費(fèi)組形式消費(fèi)數(shù)據(jù)。

zset 是怎么實(shí)現(xiàn)的?

Zset 類型的底層數(shù)據(jù)結(jié)構(gòu)是由壓縮列表或跳表實(shí)現(xiàn)的:

  • 如果有序集合的元素個(gè)數(shù)小于 128 個(gè),并且每個(gè)元素的值小于 64 字節(jié)時(shí),Redis 會(huì)使用壓縮列表作為 Zset 類型的底層數(shù)據(jù)結(jié)構(gòu);
  • 如果有序集合的元素不滿足上面的條件,Redis 會(huì)使用跳表作為 Zset 類型的底層數(shù)據(jù)結(jié)構(gòu),并且還會(huì)使用哈希表。

在 Redis 7.0 中,壓縮列表數(shù)據(jù)結(jié)構(gòu)已經(jīng)廢棄了,交由 listpack 數(shù)據(jù)結(jié)構(gòu)來實(shí)現(xiàn)了。

為什么數(shù)據(jù)量小的時(shí)候用壓縮列表?

因?yàn)閴嚎s列表一種內(nèi)存緊湊的數(shù)據(jù)結(jié)構(gòu),可以節(jié)約內(nèi)存。

壓縮列表是 Redis 為了節(jié)約內(nèi)存而開發(fā)的,它是由連續(xù)內(nèi)存塊組成的順序型數(shù)據(jù)結(jié)構(gòu),有點(diǎn)類似于數(shù)組。

83dad84a67be5579a0d73b11a800b9ff.webpimg

壓縮列表在表頭有三個(gè)字段:

  • zlbytes,記錄整個(gè)壓縮列表占用對(duì)內(nèi)存字節(jié)數(shù);
  • zltail,記錄壓縮列表「尾部」節(jié)點(diǎn)距離起始地址由多少字節(jié),也就是列表尾的偏移量;
  • zllen,記錄壓縮列表包含的節(jié)點(diǎn)數(shù)量;
  • zlend,標(biāo)記壓縮列表的結(jié)束點(diǎn),固定值 0xFF(十進(jìn)制255)。

在壓縮列表中,如果我們要查找定位第一個(gè)元素和最后一個(gè)元素,可以通過表頭三個(gè)字段(zllen)的長度直接定位,復(fù)雜度是 O(1)。而查找其他元素時(shí),就沒有這么高效了,只能逐個(gè)查找,此時(shí)的復(fù)雜度就是 O(N) 了,因此壓縮列表不適合保存過多的元素。

另外,壓縮列表節(jié)點(diǎn)(entry)的構(gòu)成如下:

1236acb1da8c8ac3a5c3f6af419ea9f7.webpimg

壓縮列表節(jié)點(diǎn)包含三部分內(nèi)容:

  • prevlen,記錄了「前一個(gè)節(jié)點(diǎn)」的長度,目的是為了實(shí)現(xiàn)從后向前遍歷;
  • encoding,記錄了當(dāng)前節(jié)點(diǎn)實(shí)際數(shù)據(jù)的「類型和長度」,類型主要有兩種:字符串和整數(shù)。
  • data,記錄了當(dāng)前節(jié)點(diǎn)的實(shí)際數(shù)據(jù),類型和長度都由 encoding 決定;

當(dāng)我們往壓縮列表中插入數(shù)據(jù)時(shí),壓縮列表就會(huì)根據(jù)數(shù)據(jù)類型是字符串還是整數(shù),以及數(shù)據(jù)的大小,會(huì)使用不同空間大小的 prevlen 和 encoding 這兩個(gè)元素里保存的信息,這種根據(jù)數(shù)據(jù)大小和類型進(jìn)行不同的空間大小分配的設(shè)計(jì)思想,正是 Redis 為了節(jié)省內(nèi)存而采用的。

壓縮列表和跳躍表的區(qū)別?

  • 存儲(chǔ)方式區(qū)別:壓縮列表是一種緊湊的線性連續(xù)存儲(chǔ)結(jié)構(gòu),通過將多個(gè)元素依次存儲(chǔ)在一塊連續(xù)的內(nèi)存中,節(jié)省了內(nèi)存空間。而跳躍表則是一種基于鏈表的數(shù)據(jù)結(jié)構(gòu),通過多層次的索引結(jié)構(gòu)(跳躍層)來加速查找。
  • 時(shí)間復(fù)雜度區(qū)別:在讀取或修改操作方面,壓縮列表的時(shí)間復(fù)雜度為O(n),其中n是元素?cái)?shù)量。因?yàn)閴嚎s列表需要線性掃描來定位元素。而跳躍表的讀取或修改操作的時(shí)間復(fù)雜度為O(log n),通過跳躍層和鏈表的結(jié)構(gòu),可以快速定位到目標(biāo)元素。
  • 內(nèi)存占用區(qū)別:壓縮列表具有較小的內(nèi)存占用,對(duì)于較小的有序集合,可以更節(jié)省內(nèi)存空間。而跳躍表則需要更多的內(nèi)存空間來存儲(chǔ)索引結(jié)構(gòu),因此在空間占用方面相對(duì)較大。

redis主從復(fù)制的過程?

第一次同步的過程如下:

c4ebca6e41547de7bf1d27c5ab74f7d6.webp圖片
  • 第一階段是建立鏈接、協(xié)商同步;
  • 第二階段是主服務(wù)器同步數(shù)據(jù)給從服務(wù)器;
  • 第三階段是主服務(wù)器發(fā)送新寫操作命令給從服務(wù)器

主從服務(wù)器在完成第一次同步后,就會(huì)基于長連接進(jìn)行命令傳播。

0f744f5b635239921ff74dda09e10ad2.webp圖片

后續(xù)主服務(wù)器可以通過這個(gè)連接繼續(xù)將寫操作命令傳播給從服務(wù)器,然后從服務(wù)器執(zhí)行該命令,使得與主服務(wù)器的數(shù)據(jù)庫狀態(tài)相同。

通過什么復(fù)制?

全量復(fù)制階段是復(fù)制 rdb 文件。

增量復(fù)制命令存在哪里?

存放在 repl_backlog_buffer  緩沖區(qū),在主服務(wù)器進(jìn)行命令傳播時(shí),不僅會(huì)將寫命令發(fā)送給從服務(wù)器,還會(huì)將寫命令寫入到 repl_backlog_buffer 緩沖區(qū)里,因此 這個(gè)緩沖區(qū)里會(huì)保存著最近傳播的寫命令。

0705ef15f9a0f5a086f883954a921c95.webp

RDB、AOF優(yōu)缺點(diǎn)有哪些?

  • RDB 是一個(gè)緊湊的二進(jìn)制文件,相對(duì)較小,可以節(jié)省磁盤空間。。AOF文件是一個(gè)文本文件,記錄了每個(gè)寫操作,因此相對(duì)于RDB文件來說,AOF文件更大,因此RDB 在恢復(fù)大數(shù)據(jù)集時(shí)的速度比AOF 的恢復(fù)速度要快。
  • Rob 的缺陷在于數(shù)據(jù)丟失的風(fēng)險(xiǎn)更大,如果Redis在最后一次快照之后發(fā)生故障,可能會(huì)丟失一部分?jǐn)?shù)據(jù)。而 AOF以日志的方式記錄每個(gè)寫操作,數(shù)據(jù)的安全性會(huì)更高。

linux

ps命令里都有哪些選項(xiàng),ps展示哪些東西?

c18375822e98c34c031a4fd79b6fdd41.webp

ps命令展示內(nèi)容:

  • PID:進(jìn)程ID。
  • PPID:父進(jìn)程ID。
  • USER:進(jìn)程所屬用戶。
  • %CPU:CPU占用率。
  • %MEM:內(nèi)存占用率。
  • VSZ:虛擬內(nèi)存大小。
  • RSS:物理內(nèi)存大小。
  • TTY:終端設(shè)備。
  • STAT:進(jìn)程狀態(tài)。
  • START:進(jìn)程啟動(dòng)時(shí)間。
  • TIME:進(jìn)程累計(jì)CPU占用時(shí)間。
  • COMMAND:進(jìn)程命令或可執(zhí)行文件。

ps命令選項(xiàng):

  • -a:顯示所有進(jìn)程,包括其他用戶的進(jìn)程。
  • -u:顯示用戶相關(guān)的進(jìn)程信息。
  • -x:顯示沒有控制終端的進(jìn)程。
  • -e:顯示所有進(jìn)程,等同于-a選項(xiàng)。
  • -f:顯示詳細(xì)的進(jìn)程信息,包括進(jìn)程的父進(jìn)程、運(yùn)行狀態(tài)等。
  • -l:顯示長格式的進(jìn)程信息,包括進(jìn)程的PID、PPID、CPU占用率等。
  • -r:顯示正在運(yùn)行的進(jìn)程。
  • -o:自定義輸出格式。

top命令會(huì)展示什么東西,里面每一項(xiàng)都是呈現(xiàn)什么樣的數(shù)據(jù)?

251b79a4c3e4effa83c59233a7ccef49.webp

主要會(huì)展示:

  • Load average(平均負(fù)載):顯示系統(tǒng)在最近1分鐘、5分鐘和15分鐘內(nèi)的平均負(fù)載情況。

  • Tasks(任務(wù)):顯示當(dāng)前運(yùn)行、睡眠、停止和僵尸狀態(tài)的進(jìn)程數(shù)量。

  • CPU usage(CPU使用情況):顯示CPU的總體使用率以及每個(gè)CPU核心的使用率。

  • Memory usage(內(nèi)存使用情況):顯示物理內(nèi)存的總量、已使用量、空閑量、緩沖區(qū)和緩存區(qū)的使用量。

  • Swap usage(交換空間使用情況):顯示交換空間的總量、已使用量和剩余量。

  • 進(jìn)程列表:顯示當(dāng)前運(yùn)行的進(jìn)程列表,包括進(jìn)程的PID、用戶、CPU占用率、內(nèi)存占用率、進(jìn)程狀態(tài)、啟動(dòng)時(shí)間和進(jìn)程命令。

算法題

  • 手撕算法:尋找第k大元素

其他

  • 實(shí)習(xí)項(xiàng)目介紹
  • 通過什么方式學(xué)習(xí)
歷史好文: 我們又出成績了?。?/a>
還是銀行面試舒服些...
百度提前批,有點(diǎn)難度!
終于字節(jié)約面,可惜沒把握住....
瀏覽 59
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評(píng)論
圖片
表情
推薦
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 神马午夜视频| 午夜黄色影视| 超碰碰碰碰碰| 亚欧精品久久久| 日韩人妻无码一区二区三区中文| 日韩午夜| 高清无码网址| 91久久人澡人妻人人澡人人爽 | 中国女人如毛片| 日韩精品一区二区三区使用方法| 亚洲无码手机在线观看| 无码蜜桃吴梦梦| 成人国产| 少妇一区二区三区| 日韩人妻视频| 日皮视频在线免费观看| 东京热日韩无码| 国产香蕉视频免费| 少妇大战28厘米黑人| 国产色综合视频| 免费黄色视频网站在线观看| 亚洲人成高清| 亚洲三级视频| 国产一区二区三区免费| 色天使av| 四虎影院色| 日韩最新高清无码| 秋霞精品一区二区三区| 日韩人妻精品无码久久| 操网站| 久操免费观看| 日本中文字幕在线免费观看| 毛片天堂| 精品久久久久久AV2025 | 久久久久久麻豆| 久久久精品| 欧美成人大香蕉| 日韩大香蕉在线| 我要操影院| 国产高清AV在线| 3DAV一区二区三区动漫| 欧美高清无码| 免费黄片在线看| 国产二区三区| 九九香蕉视频| 亚洲日韩免费| 操鸡视频在线观看| 狠操网| 影音先锋成人电影| 超碰人人操人人爱| 三级视频网| 波多野结衣无码AV| 超碰蜜桃| 一起操影院| 天堂vs亚洲| 木下凛凛子AV888AV在线观看| 成人做爰A片AAA毛真人| 国产乱视频| 日本欧美在线观看| 麻豆黄色片| 97干视频| 久久免费视频网站| 在线中文AV| 久久国产热在8| 青青草免费在线视频| 国产成人免费在线观看| 白嫩外女BBWBBWBBW| 91人妻最真实刺激绿帽| 欧美另类综合| 精品99999| 久久免费视频,久久免费视频 | 国产美女一级真毛片酒店| 免费黄色视频网站在线观看| 特黄一级片| 日韩中文无码电影| 加勒比无码综合| 久久伊人中文字幕| 日韩欧美综合| 五月久久婷婷| 天天日天天操天天射| 午夜精品18视频国产17c| 丰满人妻无码| 在线无码中文| 无码骚逼| 日本无码成人| 亚洲小穴| 亚洲精品久久久久毛片A级绿茶 | 中文色片| 夜夜骑免费视频| 黑人干亚洲人| 91外围女视频| 九九热精品| 天堂a√中文8| 成人久久| 日本一区二区三区在线观看| 俺来了俺去了| 高清视频一区二区| 在线观看者亚洲| 免费看黄片,在线观看| 影音先锋天堂网| 日本综合视频| 日韩成人AV在线| 色老板在线免费观看| 国产精品视频在线免费观看 | 看黄色一级片| 密臀AV在线| 欧美五月激情| 97久久人人| 黄片在线免费播放| 韩国精品在线| 被黑人猛躁10次高潮视频| 国产男女无套免费视频| 亚洲色老板| 亚洲三级黄色| 亚洲五月天在线| 国产精品偷拍| 又紧又嫩又爽无遮挡免费| 四季AV综合网站| 囯产精品久久久久久久| 操逼a片| 国产精品偷拍| 日本中文字幕在线视频| 无码视频一区| 啪啪免费网站| 日韩一区二区无码| 亚洲操B| 高潮视频在线观看| 日日干干| 久操伊人大香蕉| 亚洲无码aa| 强波多野结衣黑人| 国产成人97精品免费看片| 能看的黄色视频| 西西人体大胆ww4444图片| 巨爆乳肉感一区二区三区视频| 亚洲天堂AV2025| 国产美女做爱| 日韩av在线看| 免费无码婬片aaaa| 欧美亚洲操逼视频| 国产亚洲欧美视频| 日韩中文字幕精品| 91丨九色丨熟女新版| 婷婷中文网| 超碰在线天天干| 无码一道本一区二区无码| 国产夫妻精品| 熟妇自拍| 九九热九九| 欧美中文字幕| 日韩精品一区二区三区四区| 丁香四月婷婷| 亚洲中文字幕无码在线观看| 亚洲精品无码中文| 77777精品成人免费A片| 日本色网址| 中文字幕在线观看日本| 97黄片| 黄网站免费在线观看| 中文字幕有码在线视频| 久热在线| 人人摸人人看| 无毛片| 成人国产精品秘欧美高清| 西西人体BBBBBB| 日韩国产传媒| 青青草成人在线观看| 国产色情视频在线观看| 天堂а√在线中文在线新版| www.17c嫩嫩草色蜜桃网站| 99人妻人人爽人人添人人精品| 日韩精品人妻中文字幕| 人妻少妇精品视频| 青青草免费在线视| 在线观看AⅤ| 黄色毛片网| 国产三级免费观看| 韩国中文无码| 日韩一级电影在线观看| 欧美性爱一区二区| 网址你懂的| 欧美日韩在线观看一区| 欧美日韩视频免费观看| 日本一区二区在线视频| 狼友视频首页| 一区二区水蜜桃| 国产伊人大香蕉| 激情五月婷婷| 51色片| 日韩中文字幕一区二区| 九色PORNY丨自拍蝌蚪| 国产又爽又黄免费网站在| 亚洲性天堂| 日韩高清一区二区| 丁香婷婷色五月| 国产老熟女高潮毛片A片仙踪林| aV无码av天天aV天天爽第一| 人人天天爽| 久久久WWW成人免费精品| 成人网站免费在线观看| 久久久一区二区三区| 欧美综合亚洲图片综合区| 无码人妻丰满熟妇区毛片蜜桃麻豆| 亚洲成人无码高清| 欧美v亚洲| 午夜AV福利| 日韩经典无码| 色噜噜狠狠色综无码久久合欧美| 国产无码在线影院| 亚洲综合二区| 久久九九综合| 青青草精品视频| 国产亚洲久一区二区| 亚洲第一免费视频| 夜夜操夜夜爽| 亚洲国产女人| 日韩精品无码一区二区三区 | 国产第页| 国产无码黄片| 自拍偷拍视频网站| 人人妻人人澡人人爽久久av| 丰满人妻一区二区三区精品高清| 九七精品| 九色国产视频| 国产三级黄色视频| 玖玖中文字幕| 免费无码在线视频| 国内老熟妇对白HDXXXX| 国产乱伦免费| 在线无码免费观看| 欧美色五月| 99久久精彩视频| 久久国产乱子伦精品免费午夜... 国产毛片精品一区二区色欲黄A片 | 5252a我爱haose01我愿| 91丨国产丨白浆| 91国内偷拍| 人妻日韩| 一本大道香蕉av久久精东影业 | 69av视频在线观看| 婷婷婷色| 精品国产AⅤ麻豆| 在线观看免费黄片| 18精品爽视频| 一区久久| 69免费视频| 久久草草热国产精| 五月丁香婷婷啪啪| 2019天天干| 五月天激情小说| 人妖和人妖互交性XXXX视频| 51AV在线| 人人妻人人澡人人爽人人DVD| 午夜精品18码视频国产17c| 97精品超碰一区二区三区| www.日本黄色视频| 天天拍夜夜操| 激情网站免费| 成人aV无码精品国产一区二区| www.国产在线观看| 亚洲精品一区二区三区蜜桃| 校园春色亚洲色图| 国产91在线亚洲| 国产黄色录像| 97成人精品| 男人天堂色| 亚洲麻豆| 国产主播AV| 久久涩| 久久在线视频| 四川性BBB搡BBB爽爽爽小说| 亚洲高清无码视频在线| 欧美日韩国产一区二区三区| 国产乱婬片视频| japanese在线观看| 欧美熟妇精品黑人巨大一二三区| 熊猫视频91| 国产视频a| 91人人人| 日本在线一级片| 久久国产精品99久久人人澡| 色婷婷视频在线播放| 骚白虎一区| 爱搞视频| 在线成人av| 无码免费观看| 91aV视频| 99精品人妻| 做爱的网站| 91在线永久| 亚洲AV无码成人精品涩涩麻豆| 成人在线观看网| 日本一本在线| 啪啪免费视频| 青青操青青干| www四虎com| 亚洲福利视频97| 精品无码一区二区三区在线| 狼友在线观看| 日日干天天日| 成人黄色性爱视频| 99中文字幕| 婷婷久热| 五月丁香花| 国产黄片自拍| 日韩不卡视频在线| 泄火熟妇2-ThePorn| 99视频自拍| 奇米88888| 国产一级在线观看| 国产网站视频| 国产黄色在线免费观看| 亚洲AV无码一区二区三区少妇| 中文字幕高清无码在线| 一区二区三区在线观看视频| 91破处网站| 国产黄A| 一级国产黄色视频| 日本精品黄色视频| 中文字幕欧美日韩| 特级西西人体www高清大胆| 蜜桃Av噜噜一区二区三| 91爱爱| 日韩无码少妇| 色逼视频| 日韩欧美在线一区| 五月丁香成人网| www.777熟女人妻| 牛牛免费视频| 天堂网视频| 无码秘蜜桃吴梦梦| 亚洲无码在线免费观看| 久久久77| 亚洲日韩高清无码| 欧美熟妇另类久久久久久不卡| 97人妻在线视频| 正在播放ADN156松下纱荣子| 一二三区免费视频| 五月丁香久久| 在线免费看黄视频| 亚洲无码AV电影| 日韩在线观看免| 日本成人精品| 蜜桃传媒AV| 黄页网址在线观看| 午夜精品久久久久久不卡8050 | 亚洲国产色情| 大香蕉伊人电影| 美女白嫩嫩大BBB欣赏| 日韩精品一区二区三区四在线播放 | 阿宾MD0165麻豆沈娜娜| 日韩区在线| 青青草原亚洲| 91西安站街老熟女露脸| 麻豆国产| 人人操人人看人人| 91色噜噜狠狠色婷婷| 伊人私人影院| 大黑人荫蒂BBBBBBBBB| 成人电影三区| 黑人狂躁女人高潮视频| 国产欧美毛片| 久久久黄色视频| 日韩一区二区三免费高清在线观看 | 大色网小色网| 日本日逼网| 17c.白丝喷水自慰| 大陆搡BBBBB搡BBBBBB| 国产精品午夜成人免费| 91日韩无码| 国产精视频| 日日爱99| 国产精品99久久久久的广告情况 | 日韩高清无码毛片| 免费无码视频一区二区| 亚洲ww| 日本A片一级| 天堂中文资源库| 久久久国产精品人人片| a天堂8在线资源| 亚洲中文字幕日韩在线| 躁BBB躁BBB躁BBBBB乃| 国产一级a毛片| 狼友无码| 亚洲射射| 亚洲性爱视频在线观看| 操操操综合| 久久青| 女人18片毛片90分钟免费明星| 国产乱子伦日B视频| 99日韩精品| 欧美经典自拍狼友| 日韩不卡在线观看| 国产精品一区网站| av无码中文| 日本天天色| 亚洲一区二区在线免费观看| 一级a免费| 人人妻人人干| 中文字幕精品一区| 国产激倩都市一区二区三区欧美| 亚洲视频一区二区三区四区娇小视频在线观看视频| 日逼网站国产| 欧美一級黃色A片免費看| 五月天福利网| 51妺嘿嘿午夜福利| 色视频免费观看| 伊人在线观看视频| 久草视频免费看| 欧美美女日逼视频| 99视频在线看| 高潮91PORN蝌蚪九色| 亚洲无码在线免费观看视频| 蜜桃人妻无码| 大香蕉婷婷| 特级西西444www精品视频| 婷婷激情五月天丁香| 亚洲精品第一页| 骚骚肥肥一区二区三区| 强伦轩农村人妻| 美女视频毛片| 菊花综合网| 日本不卡在线视频| 我要看黄色一级片| 免费看无码一级A片放24小时| 国內精品久久久久久久| 翔田千里无码精品| caopor在线| 亚洲Av无码午夜国产精品色软件| 乱婬妺妺躁爽A片| 久久久久极品| 日韩草比| 亚洲小说区图片区| 亚洲第一成年人网站| 精品一二三区| 午夜九九九| 最美人妖系列国产Ts涵涵| 逼网站| 国产成人无码一区二区在线观看| 一级黄色大毛片| 91网站免费观看| 亚洲加勒比久久88色综合| 亚洲精品久| 国产69精品久久久久久| 国产黄色一区| 色五月婷婷中文字幕| 四虎日韩| 91丨九色丨熟女老版| 亚洲第一AV| 亚洲精品国产精品国自产A片同性 丰满人妻一区二区三区四区不卡 国产1级a毛a毛1级a毛1级 | 中文在线第一页| 91女人18毛片水多国产| 欧美性BBB槡BBB槡BBB| 超碰自拍97| 国产精品久久久久野外| 精品无码视频在线观看| 大香蕉操B| 五月天性爱视频| 51AV在线| 成人尤物网站| 成人精品免费视频| 天天艹夜夜| 一区二区三区四区日韩| 色婷婷丁香五月天| 国产精品污www在线观看| 人人妻人人玩澡人人爽| 久久久久久av| 日韩熟妇无码中文字慕| 日韩AV网站在线观看| 97无码视频| 久久成人电影院| 国产黄色在线看| 亚洲无码在线观看视频| wwwxxx18| 国产21区| 国产AV大香蕉| 人人澡人人看| 日韩在线视频中文字幕| 国产SUV精品一区二区| 中文字幕无码av| 特级西西人体WWWWW| 亚洲黄色在线免费观看| 成人做爰100片免费看| 国产精品视频福利| 特级西西人体444www高清| 黄色免费a级片一级片| 最近中文字幕免费MV第一季歌词怀孕 | 国产成人精品久久久| 99久久人妻无码中文字幕系列 | 在线观看中文字幕av| 无码人妻精品一区二区三区蜜桃91| 国产成人久久777777| 精品九九| 国产成人精| 日韩成人免费观看| 日韩av中文字幕在线播放| 亚洲www啪成人一区二区麻豆| 成年人免费电影| 天天看高清无码| 欧美成人图片视频在线| 香蕉91视频| 亚洲综合日韩| 中国老少配BBwBBwBBW| 欧美日韩高清| 久久久久99精品成人网站| 成人免费在线网站| 人妻北条麻妃在线| 91香蕉视频18| 欧美日本在线观看| 久久成人无码电影| 澳门午夜黄色在线| 欧美日韩一| 天天日天天射天天操| 豆花视频久久| 黄色高清视频在线观看| 黄色三级网站| 久久女人视频| 成人性爱在线播放| 精品一区二区三区无码| 国内成人精品网站| 成人电影91| 亚洲一区二区精品| 操逼超碰| 蜜臀AV成人| 操逼操| 91丨国产丨熟女熟女| 97国产精品久久| 亚洲视频99| 亚洲色吧| 亚洲专区视频| 2025精品视频| 18害羞勿进网站国产| 亚洲无码人妻一区| 日韩中文字幕在线视频| 91免费国产视频| 欧美日韩色| 欧洲综合视频| www.wuma| 国产日韩欧美在线| 欧美成人性爱视频| 欧美A片在线| 五月天黄色片| 黄网站欧美内射| 木下凛凛子AV888AV在线观看| 国产成人av在线播放| 淫色五月| 亚洲无码激情视频| 亚洲AV永久无码国产精品久久| 欧美footjob高跟脚交| 自拍偷拍亚洲| 操东北女人逼| 国产三级免费观看| 欧美日韩综合网| 亚洲不卡免费视频| 伊人乱伦| 国产一级a毛一级做a爱| 亚洲区欧美区| 99热免费精品| 国产欧美综合三级伦| 亚洲无码操逼视频| 尤物视频在线播放| 午夜精品18| 乱伦一级| 国产乱子伦一区二区三区在线观看| 99热官网| 安徽妇搡BBBB搡BBBB,另类老妇 | 四虎在线观看| 九九热免费视频| 国产精品成人在线观看| 国产视频999| 欧美一区二区三区在线播放 | 人妻无码一二三区免费| 淫色视频| 青青草免费在线| 日韩A片免费看| 91黄色视频在线播放| 亚洲乱伦av| 麻豆18禁| 撸撸操在线视频观看只有精品| 人人草人人爱| 91狠狠综合久久久久久| 久久XX| 少妇无码在线观看| 欧美综合自拍| 国产精品无码不卡| 欧美一道本在线| 久久精品在线观看| 国产91白丝在一线播放| 日韩性爱视频网站| 婷婷五月天色色| 精品成人在线视频| 亚洲婷婷AV| 韩国无码AV| 日本三级AAA三级AAAA97| 欧美伊人| 四虎精品一区二区三区| 天天色av| 国产精品视频免费看| 欧美日韩精品一区| 亚洲成人精品一区二区| 久久综合17p| 丁香婷婷网| 成人黄网站免费观看| 亚洲国产女人| 青娱乐三级在线免| 中文字幕成人在线| 亚洲免费成人| 亚洲操逼片| 欧美成人手机在线| 久久久久精| 五月天久久| 久久婷婷成人综合色怡春院| 中文字幕免费无码| 一级内射片在线网站观看| 一级片AA| 丰满人妻一区二区三区Av猛交| 北条麻妃99精彩视频| 日韩无码免费视频| 欧美日韩成人在线| 五月天无码视频| 一区二区三区无码在线| 七十路の高齡熟妇无码| 国产日韩在线观看视频| 天堂一区二区三区18| 免费看黄的网站在线观看| 亚韩av| 亚洲AⅤ无码一区二区波多野按摩| 嫩BBB搡BBB搡BBB四川| 伊人大香蕉在线网| 国产一级黄色A片| 亚洲无码1| 成人AV免费观看| 洞av | 日韩无码中文字| 91成人综合| 五月天亚洲激情| 天堂成人在线视频| 脓肿是什么原因引起的,该怎么治疗 | 91久久精品日日躁夜夜躁国产| 久久午夜视频| 俺来也网| 成人激情五月天| 天天操夜夜撸| 色丁香五月婷婷| 日韩AV中文字幕在线| 欧洲亚洲视频| 国产麻豆精品成人毛片| 日本综合色| 簧片在线免费观看| 欧美日韩激情视频| 国产69精品久久久久久| 97国产精品人人爽人人做| www.91com| 天堂a在线| 人人爱人人摸人人操| 亚洲精品中文字幕成人片| 成人午夜在线观看| 国产内射精品| 河南乱子伦视频国产| aaa少妇| 99热免费精品| 欧美性猛交ⅩXXX无码视频| 亚洲无码免费网站| 爱爱视频免费网站| 波多野结衣与黑人| av官网| 99久久丫e6| 男人视频网站| 一区二区三区水蜜桃| 欧美日韩婷婷| 婷婷五月天色播| 三级黄色免费网站| 欧美成人中文字幕在线| 蜜桃传媒视频| 在线免费观看视频黄| 欧美av| 91.www91成人影视在线观看91成人网址9 | 欧美日韩免费一区二区三区| 青青草国产亚洲精品久久| 亚洲AV无码免费| 嫩小槡BBBB槡BBBB槡漫画| 激情小说激情视频| 午夜看黄片| 三级在线视频| 免费a在线观看| 五月久久婷婷| 做爱网站| 亚洲一本在线电影av| 欧美打炮网| 日韩大码无码| 国产精品久久久91| 黄色污污污网站| 免费观看的av| 水多多成人视频| 荫蒂添的高潮免费视频| 亚洲欧洲无码视频| 日本亚洲中文字幕| 一区二区有限公司| 夜操| 男人天堂色男人| 另类老妇videos另类| 国产福利精品视频| 久久爆乳一区二区三区| 成人网站在线免费| 99性爱视频| 国产欧美一区二区人妻喷水| 在线中文字幕777| 一级a片在线| 久热中文在线观看精品视频| 国产亚洲网| 九九九九综合| 特级西西444WWW无码视频兔费看 | 五月婷婷深深爱| 亚洲成人A片| 18禁免费网站| 午夜无码鲁丝片午夜精品| 欧美日韩精品一区二区三区| 无码任你操| 激情色图| 中文字幕av免费在线观看| 可以免费看的AV| 亚洲一级免费视频| 91含羞草www·Com| 人人爽人人干| 97综合| 色逼五月| 欧美日韩一区二区三区视频| 日本无码毛片| www.199麻豆在线观看网站| 曰曰摸日日碰| 日批网站视频| 成人AAA片| 免费看黄色片| 大鸡巴午夜爽视频电影| 一起操逼| 国产女人水真多18毛片18精品 | 超碰九九热| 久久久久99精品成人片三人毛片| 福利在线| 亚洲精品成人无码毛片| 亚洲网站在线| 黄片网站在线观看| 日本高清视频www| AV婷婷在线| 免费高清无码| 四虎成人精品在永久免费| 国产成人无码区亚洲A片356p| 一区二区三区无码在线观看| 亚洲日韩中文字幕在线观看| 亚洲美女喷水视频| 久久综合站| 美女高潮在线| 亚州在线中文字幕经典a| 91网在线| 老司机无码视频| 亚洲高清免费| 日本三级AAA三级AAAA97 | 干片网| AV大香蕉| 久久精品操| 一边做一边说国语对白| 国产成人精品一区| www.激情| 成人日韩无码| 久久久久久国际四虎免费精品视频| 你懂的在线视频观看| www.97cao| 曰曰摸日日碰| 一级特黄大片色| 一区二区三区四区五区在线| 成人在线免费观看国产| 中文字幕www一区| 国产成人视频免费在线观看| 伊人久久香| 亚洲欧美视频在线| 国产黄色免费网站| 久久精品国产亚洲AV麻豆痴男 | 日韩成人观看| 加勒比无码| 91香蕉视频18| 超碰C| 婷婷五月综合中文字幕| 久久久精品午夜人成欧洲亚洲韩国| 久久伊人大| 91九色蝌蚪| 成人二区三区| 久久久永久免费视频| 无码人妻丰满熟妇区蜜桃| 亚洲天堂2025| 免费成人黄色| 色一本| 天堂网一区二区三区| 国产黄色视屏| 欧美精品三级| 蜜桃91精品秘入口| 色婷婷五月激情| 免费视频在线观看一区| 韩国精品无码| 天天av天天av天天爽| 欧美日韩免费在线播放电影在线播放电影在线播放电影免费 | 日韩www| 午夜视频免费在线观看| 欧美福利在线观看| A在线| 欧美激情一区二区| 丰满少妇一级片| 少妇搡BBBB搡BBB搡毛片少妇| 国产成人无码免费| 亚洲人妻在线视频| 亚洲一级免费免费在线观看| 麻豆午夜福利视频| 大鷄巴成人A片视频| 色五月综合网| 殴殴美日韩在线| 亚洲无吗在线播放| 婷婷五月天啪啪| 中文字幕无码亚| 久久er| 2025天天操夜夜操| 国产成人网站免费观看| 亚洲五月天在线| 黄色成人在线观看| 国产精品视频久久久久| 91性爱视频在线观看| 午夜无码影院| 欧美黄色片| 国产日韩在线播放| AV婷婷五月天| 在线免费观看黄色电影| 老司机永久免费91| 人妻无码中文字幕蜜桃| 又大又粗又爽| 韩国成人啪啪无码高潮| 婷婷五月天激情丁香| 91ccc| 国产操比视频| 国产视频一区二区三区四区| 制服.丝袜.亚洲.中文.豆花 | 在线观看www视频| 成人肏逼视频| 欧美打炮网| 秋霞丝鲁片一区二区三区手机在绒免 | 三级国产| 国产精品女人精品久久久天天| 好吊妞视频在线| 国产AV黄色| 兔子先生和優奈玩游戲脫衣服,運氣報表優奈輸到脫精光 | 伊人网视频在线| 免费国产h| jizz免费在线观看| 亚洲无码精品在线观看| 日本免费黄色视频| 欧美成人综合一区| 在线内射视频| 黄色精品视频| 夜夜bb| 欧美综合第一页| 黄片视频免费在线观看| 少妇熟女视频一区二区三区| 成人理伦A级A片在线论坛| 亚洲影院在线观看| 免费一级婬片AAA片毛片A级 | 蜜臀无码在线| 特级A级毛片| 黄色成人在线观看| 西西人体444www| 杨贵妃一级婬片90分钟| 日韩视频中文字幕| 亚洲精品无码一区| 青青草免费观看视频| 天天操综合网| 国产美女被爽到高潮免费A片软件 国产无遮挡又黄又爽又色视频软件 | av在线免费观看网站| 国产高清视频在线| 嘿咻嘿咻动态图| 中文字幕乱码中文字幕| 怡红院成人网| 久久久精品淫秽色情| 麻豆国产91在线播放| 色五月激情| 动漫3D成人H无码国漫| 91导航| 日本韩国叼嘿片| 亚洲一| 嫩小槡BBBB槡BBBB槡漫画| 怍爱视频| 韩国三级HD久久精品| 人人干人人摸人人操| 你懂的在线视频观看| 婷婷精品免费久久| 免费无码国产在线53| 欧美日韩在线观看一区二区三区| 大茄子熟女AV导航| 天天做| 亚洲一线视频| 四川BBB搡BBB搡多人乱| 亚洲精品国产精品乱码视99 | 中文字幕AV网| 日韩成人网址| 黄色一级aa片| 久久久久一区|