中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

別人幫做的網(wǎng)站到期續(xù)費(fèi)企業(yè)網(wǎng)絡(luò)營銷策略

別人幫做的網(wǎng)站到期續(xù)費(fèi),企業(yè)網(wǎng)絡(luò)營銷策略,課題網(wǎng)站建設(shè)驗(yàn)收總結(jié)報(bào)告,專業(yè)商城網(wǎng)站制作1. 說說計(jì)算機(jī)存儲結(jié)構(gòu) 計(jì)算機(jī)存儲結(jié)構(gòu)通常包括這幾個(gè)層次: 主存儲器(Main Memory):也稱為內(nèi)存(RAM,Random Access Memory),主要用于存儲當(dāng)前正在執(zhí)行的程序和數(shù)據(jù)。它是計(jì)算機(jī)中最…

1. 說說計(jì)算機(jī)存儲結(jié)構(gòu)

計(jì)算機(jī)存儲結(jié)構(gòu)通常包括這幾個(gè)層次:

主存儲器(Main Memory):也稱為內(nèi)存(RAM,Random Access Memory),主要用于存儲當(dāng)前正在執(zhí)行的程序和數(shù)據(jù)。它是計(jì)算機(jī)中最快速但容量有限的存儲設(shè)備。數(shù)據(jù)可以隨機(jī)讀取和寫入,但在斷電后數(shù)據(jù)會丟失。
輔助存儲器(Secondary Storage):輔助存儲器用于持久性存儲數(shù)據(jù)和程序,如硬盤驅(qū)動(dòng)器(HDD)和固態(tài)驅(qū)動(dòng)器(SSD)。與主存儲器相比,它們?nèi)萘扛?#xff0c;但速度較慢。數(shù)據(jù)在斷電后仍然保持。
緩存存儲器(Cache Memory):緩存存儲器是位于主存儲器和中央處理器(CPU)之間的高速緩存,用于提高數(shù)據(jù)訪問速度。它存儲最常用的數(shù)據(jù)和指令,以減少對主存儲器的訪問次數(shù)。
寄存器(Registers):寄存器是位于CPU內(nèi)部的最快速的存儲設(shè)備。它們用于存儲CPU當(dāng)前執(zhí)行的指令和操作數(shù),以及中間計(jì)算結(jié)果。寄存器的數(shù)量有限,通常以位數(shù)來衡量(如32位或64位寄存器)。
光盤和磁盤:光盤(如CD和DVD)和磁盤(如軟盤)是可移動(dòng)的輔助存儲設(shè)備,用于存儲大量數(shù)據(jù),如音頻、視頻和文件。它們的訪問速度比主存儲器和緩存慢,但容量較大。
網(wǎng)絡(luò)存儲:網(wǎng)絡(luò)存儲包括各種云存儲和網(wǎng)絡(luò)附加存儲設(shè)備,允許用戶通過互聯(lián)網(wǎng)訪問和存儲數(shù)據(jù)。這種存儲方式越來越常見,允許數(shù)據(jù)在多個(gè)設(shè)備之間共享和同步。
外部設(shè)備:外部設(shè)備如USB閃存驅(qū)動(dòng)器、外部硬盤和網(wǎng)絡(luò)附加存儲設(shè)備可以連接到計(jì)算機(jī),用于數(shù)據(jù)備份、傳輸和存儲。

2 操作系統(tǒng)怎樣管理內(nèi)存

內(nèi)存分配和回收:操作系統(tǒng)負(fù)責(zé)管理系統(tǒng)中可用的物理內(nèi)存。當(dāng)一個(gè)程序需要內(nèi)存時(shí),操作系統(tǒng)會分配一塊適當(dāng)大小的內(nèi)存空間給該程序,并記錄已分配內(nèi)存的相關(guān)信息。當(dāng)程序不再需要內(nèi)存時(shí),操作系統(tǒng)會將這些內(nèi)存釋放出來,以便其他程序使用。這個(gè)過程通常包括內(nèi)存分配表、內(nèi)存回收算法等。
內(nèi)存保護(hù):操作系統(tǒng)確保不同程序的內(nèi)存空間相互隔離,以防止一個(gè)程序意外地訪問或修改其他程序的內(nèi)存數(shù)據(jù)。這通常通過硬件機(jī)制(如CPU的特權(quán)級別和內(nèi)存保護(hù)位)和操作系統(tǒng)的權(quán)限管理來實(shí)現(xiàn)。
虛擬內(nèi)存:虛擬內(nèi)存是一種操作系統(tǒng)提供的抽象層,它將物理內(nèi)存和磁盤上的存儲結(jié)合在一起,使得系統(tǒng)似乎具有比物理內(nèi)存更大的地址空間。操作系統(tǒng)根據(jù)需要將數(shù)據(jù)從磁盤交換到物理內(nèi)存中,以便程序能夠訪問。這有助于提高系統(tǒng)的性能和多任務(wù)處理能力。
內(nèi)存分頁和分段:操作系統(tǒng)通常將物理內(nèi)存劃分為頁面或段,以便更有效地管理內(nèi)存。分頁系統(tǒng)將內(nèi)存劃分為固定大小的頁面,而分段系統(tǒng)將內(nèi)存劃分為不同大小的段。這些機(jī)制有助于操作系統(tǒng)有效地管理內(nèi)存的分配和回收。
內(nèi)存交換:當(dāng)物理內(nèi)存不足時(shí),操作系統(tǒng)可以將不活動(dòng)的程序或數(shù)據(jù)移動(dòng)到磁盤上,以釋放出更多的物理內(nèi)存供其他程序使用。這個(gè)過程稱為內(nèi)存交換,它可以幫助系統(tǒng)繼續(xù)運(yùn)行,盡管物理內(nèi)存有限。
內(nèi)存管理單元(MMU):硬件中的MMU是一個(gè)關(guān)鍵組件,它協(xié)助操作系統(tǒng)實(shí)現(xiàn)虛擬內(nèi)存和內(nèi)存保護(hù)。MMU將邏輯地址(由程序生成)映射到物理地址(在物理內(nèi)存中)。這有助于隔離不同程序的內(nèi)存空間,同時(shí)使虛擬內(nèi)存和物理內(nèi)存之間的映射更加高效。

3. cpu 的組成

CPU的組成主要包括這幾部分:控制單元、算術(shù)邏輯單元、寄存器、緩存、時(shí)鐘

控制單元: 控制單元(Control Unit):控制單元是CPU的核心部分之一,負(fù)責(zé)協(xié)調(diào)和控制CPU的各個(gè)部件的操作。它從內(nèi)存中讀取指令,解碼這些指令,然后執(zhí)行它們。控制單元還負(fù)責(zé)處理異常情況和中斷。
算術(shù)邏輯單元(Arithmetic Logic Unit,ALU):ALU執(zhí)行各種算術(shù)和邏輯運(yùn)算,包括加法、減法、乘法、除法、邏輯與、邏輯或等。它接收來自內(nèi)存和寄存器的數(shù)據(jù),并根據(jù)控制單元發(fā)出的指令執(zhí)行相應(yīng)的操作。
寄存器(Registers):寄存器是CPU內(nèi)部的高速存儲器單元,用于存儲臨時(shí)數(shù)據(jù)和指令操作數(shù)。寄存器非??焖?#xff0c;可以直接與ALU交互,因此在CPU的運(yùn)算過程中起到關(guān)鍵作用。其中包括:程序計(jì)數(shù)器、指令寄存器、通用寄存器
緩存(Cache):緩存是一種高速存儲器,用于存儲頻繁訪問的數(shù)據(jù)和指令,以提高訪問速度?,F(xiàn)代CPU通常包括多級緩存,其中L1緩存最接近CPU核心,L2緩存較大但速度較慢,L3緩存更大但速度更慢。緩存有助于減少CPU與主內(nèi)存之間的數(shù)據(jù)傳輸延遲。
時(shí)鐘:時(shí)鐘是CPU的關(guān)鍵部分,它以固定的速度發(fā)出脈沖信號,用于同步CPU內(nèi)部操作。時(shí)鐘速度通常以赫茲(Hz)為單位表示,例如1GHz表示每秒發(fā)出10^9次脈沖信號。

4. 死鎖產(chǎn)生條件

死鎖是指多個(gè)進(jìn)程或線程在競爭有限資源時(shí)可能遇到的一種互相等待的情況,導(dǎo)致它們都無法繼續(xù)執(zhí)行下去。死鎖產(chǎn)生的充分條件通常包括以下四個(gè)條件,它們必須同時(shí)滿足才能引發(fā)死鎖:

互斥條件(Mutual Exclusion):至少有一個(gè)資源必須是獨(dú)占性的,即一次只能被一個(gè)進(jìn)程或線程占用。這意味著當(dāng)一個(gè)進(jìn)程占用了該資源時(shí),其他進(jìn)程無法同時(shí)占用,必須等待釋放。
占有和等待條件(Hold and Wait):進(jìn)程必須持有至少一個(gè)資源,并且等待獲取其他資源。這表示進(jìn)程在等待其他資源時(shí)不會釋放已經(jīng)占有的資源,導(dǎo)致其他進(jìn)程無法使用這些資源。
不可搶占條件(No Preemption):資源不能被強(qiáng)制從一個(gè)進(jìn)程手中搶占,只能由持有資源的進(jìn)程自愿釋放。這意味著其他進(jìn)程不能強(qiáng)制占用已被其他進(jìn)程占有的資源。
循環(huán)等待條件(Circular Wait):存在一個(gè)進(jìn)程等待鏈,每個(gè)進(jìn)程都在等待下一個(gè)進(jìn)程所占有的資源。這導(dǎo)致一個(gè)循環(huán),使得每個(gè)進(jìn)程都無法繼續(xù)執(zhí)行

5. 什么情況下棧溢出

在Java中,棧溢出通常是指方法調(diào)用棧(Method Call Stack)溢出,也就是由于方法調(diào)用的遞歸深度太大而導(dǎo)致??臻g不足。

棧溢出通常發(fā)生在以下情況下:
遞歸深度過大:遞歸函數(shù)調(diào)用自身或其他函數(shù)時(shí),每次調(diào)用都會在棧上分配一段內(nèi)存,如果遞歸深度很大,??臻g可能會耗盡。
無限循環(huán)遞歸:一個(gè)無限循環(huán)中,如果遞歸調(diào)用導(dǎo)致棧不斷增長,最終可能導(dǎo)致棧溢出。

為了防止Java中的棧溢出,您可以采取以下措施:
限制遞歸深度:確保遞歸函數(shù)的遞歸深度有限,或使用迭代替代遞歸。
優(yōu)化遞歸算法:在遞歸算法中,可以嘗試減少方法調(diào)用的次數(shù),從而減少棧的使用。
增大棧大小:在某些情況下,可以通過設(shè)置JVM參數(shù)來增加棧的大小,但這不是一種推薦的解決方案,因?yàn)闂4笮〉脑黾涌赡軐?dǎo)致其他問題。

6. Arraylist與LinkedList區(qū)別

可以從它們的底層數(shù)據(jù)結(jié)構(gòu)、效率、開銷進(jìn)行闡述
ArrayList是數(shù)組的數(shù)據(jù)結(jié)構(gòu),LinkedList是鏈表的數(shù)據(jù)結(jié)構(gòu)。
隨機(jī)訪問的時(shí)候,ArrayList的效率比較高,因?yàn)長inkedList要移動(dòng)指針,而ArrayList是基于索引(index)的數(shù)據(jù)結(jié)構(gòu),可以直接映射到。
插入、刪除數(shù)據(jù)時(shí),LinkedList的效率比較高,因?yàn)锳rrayList要移動(dòng)數(shù)據(jù)。
LinkedList比ArrayList開銷更大,因?yàn)長inkedList的節(jié)點(diǎn)除了存儲數(shù)據(jù),還需要存儲引用。

7. 紅黑樹的特點(diǎn)和使用場景

紅黑樹(Red-Black Tree)是一種自平衡的二叉搜索樹,它具有以下特點(diǎn):

自平衡性:紅黑樹是一種自平衡的二叉搜索樹,它通過一系列的插入和刪除操作來維持樹的平衡。這確保了樹的高度保持在對數(shù)范圍內(nèi),使得基本操作(如查找、插入和刪除)的時(shí)間復(fù)雜度保持在O(log n)。
節(jié)點(diǎn)顏色:每個(gè)節(jié)點(diǎn)都被標(biāo)記為紅色或黑色。這些顏色標(biāo)記有助于維護(hù)樹的平衡。
每個(gè)節(jié)點(diǎn)要么是紅色,要么是黑色。
根節(jié)點(diǎn)必須是黑色。
所有葉子節(jié)點(diǎn)(NIL節(jié)點(diǎn))都是黑色。
如果一個(gè)節(jié)點(diǎn)是紅色,那么它的兩個(gè)子節(jié)點(diǎn)都必須是黑色(沒有兩個(gè)相連的紅色節(jié)點(diǎn))。
從任何節(jié)點(diǎn)到其每個(gè)葉子的簡單路徑上,黑色節(jié)點(diǎn)的數(shù)目必須相等。
插入和刪除操作的平衡調(diào)整:當(dāng)插入或刪除節(jié)點(diǎn)時(shí),紅黑樹會執(zhí)行一系列平衡調(diào)整操作,以確保樹的性質(zhì)不會被破壞。這些調(diào)整通常包括顏色變換和旋轉(zhuǎn)操作。這些操作確保了樹保持平衡,不會出現(xiàn)偏斜。
快速查找和插入:紅黑樹具有較快的查找和插入操作。由于樹的平衡性質(zhì),平均和最壞情況下的時(shí)間復(fù)雜度都是O(log n)。

使用場景
Java的TreeMap和TreeSet:也使用紅黑樹來實(shí)現(xiàn)有序的鍵值對存儲和查找。
文件系統(tǒng):某些文件系統(tǒng)使用紅黑樹來管理文件和目錄的索引。這有助于快速查找和訪問文件。
操作系統(tǒng)進(jìn)程調(diào)度:一些操作系統(tǒng)的進(jìn)程調(diào)度器使用紅黑樹來管理進(jìn)程的調(diào)度順序。紅黑樹確保了公平性和高效性。
內(nèi)存分配器:一些內(nèi)存分配器使用紅黑樹來管理內(nèi)存塊的分配和釋放,以提高內(nèi)存分配的性能。

8. HashMap 和 Concurrentmap 區(qū)別

HashMap
底層由鏈表+數(shù)組+紅黑樹實(shí)現(xiàn)
可以存儲null鍵和null值
線性不安全
初始容量為16,擴(kuò)容每次都是2的n次冪
加載因子為0.75,當(dāng)Map中元素總數(shù)超過Entry數(shù)組的0.75,觸發(fā)擴(kuò)容操作.
并發(fā)情況下,HashMap進(jìn)行put操作會引起死循環(huán),導(dǎo)致CPU利用率接近100%
HashMap是對Map接口的實(shí)現(xiàn)

ConcurrentHashMap
HashMap 和 ConcurrentMap 的底層實(shí)現(xiàn)都使用了數(shù)組和鏈表,以及在需要時(shí)使用紅黑樹來提高性能。
不能存儲null鍵和值
ConcurrentHashMap是線程安全的
JDK 8之前,ConcurrentHashMap使用鎖分段技術(shù)確保線性安全
JDK8為何又放棄分段鎖,是因?yàn)槎鄠€(gè)分段鎖浪費(fèi)內(nèi)存空間,競爭同一個(gè)鎖的概率非常小,分段鎖反而會造成效率低。
JDK 8 引入了一種新的 ConcurrentHashMap 實(shí)現(xiàn),**稱為 “CAS + Synchronized”,而不再使用分段鎖。**這是因?yàn)榉侄捂i雖然在某些情況下可以提供良好的并發(fā)性能,但它們確實(shí)存在一些缺點(diǎn),包括內(nèi)存開銷和可能的競爭條件。

內(nèi)存開銷:每個(gè)分段都需要維護(hù)一個(gè)獨(dú)立的鎖,這會導(dǎo)致內(nèi)存開銷增加,特別是當(dāng)你有大量的分段時(shí)。這可能會在某些情況下占用大量內(nèi)存,不利于性能和資源使用。
競爭條件:雖然分段鎖減少了競爭的可能性,但當(dāng)多個(gè)線程試圖修改同一分段內(nèi)的數(shù)據(jù)時(shí),仍然可能發(fā)生競爭條件。這種情況下,需要線程等待并爭奪分段級別的鎖,可能導(dǎo)致性能下降。

9. 服務(wù)器接收 http 請求怎樣區(qū)別哪個(gè)進(jìn)程

端口號:每個(gè)進(jìn)程可以監(jiān)聽不同的端口號。當(dāng)客戶端發(fā)送HTTP請求時(shí),請求中包含目標(biāo)端口號。服務(wù)器通過請求的目標(biāo)端口號來確定將請求路由到哪個(gè)進(jìn)程。不同的進(jìn)程通常監(jiān)聽不同的端口。例如,常見的HTTP服務(wù)器(如Apache和Nginx)通常監(jiān)聽默認(rèn)的HTTP端口80或HTTPS端口443,不同進(jìn)程監(jiān)聽不同的端口。
域名:對于同一IP地址上的多個(gè)虛擬主機(jī),服務(wù)器可以通過HTTP請求的Host頭部來區(qū)分它們。根據(jù)請求中的域名信息,服務(wù)器將請求路由到不同的進(jìn)程或應(yīng)用程序。
URL路徑:服務(wù)器可以根據(jù)HTTP請求的URL路徑來區(qū)分不同的應(yīng)用程序或處理程序。不同的路徑可以映射到不同的進(jìn)程或應(yīng)用程序。例如,一個(gè)服務(wù)器可以將/app1的請求路由到一個(gè)進(jìn)程,將/app2的請求路由到另一個(gè)進(jìn)程,以此類推。
反向代理:有時(shí),一個(gè)前端服務(wù)器(通常是反向代理服務(wù)器,如Nginx或Apache HTTP Server)會接收所有HTTP請求,然后將請求路由到后端服務(wù)器或進(jìn)程。反向代理服務(wù)器可以根據(jù)請求的不同特征(如域名、路徑、端口等)來決定將請求轉(zhuǎn)發(fā)給哪個(gè)后端進(jìn)程。
會話標(biāo)識符:對于基于會話的應(yīng)用程序,服務(wù)器通常使用會話標(biāo)識符來區(qū)分不同的用戶會話。會話標(biāo)識符可以存儲在Cookie中或通過URL參數(shù)傳遞,服務(wù)器使用它來將請求路由到正確的用戶會話。
自定義頭部:有些服務(wù)器和應(yīng)用程序可能使用自定義的HTTP頭部來區(qū)分請求的目標(biāo)進(jìn)程。這需要服務(wù)器和應(yīng)用程序之間的協(xié)商和定制。
負(fù)載均衡器:在大型應(yīng)用程序和高流量環(huán)境中,通常使用負(fù)載均衡器來分發(fā)HTTP請求到多個(gè)后端進(jìn)程或服務(wù)器實(shí)例。負(fù)載均衡器可以根據(jù)不同的算法和規(guī)則來決定請求的路由。

10.服務(wù)并發(fā)量高時(shí),流量怎樣負(fù)載均衡

一些常見的負(fù)載均衡策略和方法

輪詢(Round Robin):這是一種最簡單的負(fù)載均衡策略,其中負(fù)載均衡器將每個(gè)新的請求按照輪詢的方式分發(fā)給后端服務(wù)器。每個(gè)服務(wù)器依次接收請求,然后再次從頭開始。這樣可以確保請求均勻分布到所有服務(wù)器上。
加權(quán)輪詢(Weighted Round Robin):在加權(quán)輪詢中,每個(gè)后端服務(wù)器都分配一個(gè)權(quán)重,權(quán)重高的服務(wù)器會獲得更多的請求。這種方式允許根據(jù)服務(wù)器的性能和資源配置來分發(fā)負(fù)載。
最少連接(Least Connections):負(fù)載均衡器將請求發(fā)送到當(dāng)前具有最少連接數(shù)的服務(wù)器。這可以確保連接較少的服務(wù)器不會被過載,從而提高性能。
IP散列(IP Hashing):根據(jù)客戶端的IP地址計(jì)算散列值,并將請求發(fā)送到對應(yīng)散列值的服務(wù)器。這種方法可以確保相同IP地址的客戶端始終訪問同一臺服務(wù)器,適用于需要維護(hù)會話一致性的應(yīng)用。
最短響應(yīng)時(shí)間(Least Response Time):負(fù)載均衡器會根據(jù)服務(wù)器的響應(yīng)時(shí)間來選擇下一個(gè)服務(wù)器。這有助于將請求發(fā)送到響應(yīng)時(shí)間最短的服務(wù)器,提高用戶體驗(yàn)。
隨機(jī)(Random):負(fù)載均衡器隨機(jī)選擇一個(gè)后端服務(wù)器來處理請求。雖然這種方法不會平衡負(fù)載,但在某些情況下可能有用。
內(nèi)容感知負(fù)載均衡:根據(jù)請求的內(nèi)容類型,將請求路由到不同類型的后端服務(wù)器。例如,可以將圖像請求路由到圖像服務(wù)器,將視頻請求路由到視頻服務(wù)器,以提高性能

11.B+樹 B-樹的區(qū)別,為什么不用紅黑樹做索引

在B-樹樹中,鍵和值即存放在內(nèi)部節(jié)點(diǎn)又存放在葉子節(jié)點(diǎn);在 B+樹中,內(nèi)部節(jié)點(diǎn)只 存鍵,葉子節(jié)點(diǎn)則同時(shí)存放鍵和值。
B+樹的葉子節(jié)點(diǎn)有一條鏈相連,而 B 樹的葉子節(jié)點(diǎn)各自獨(dú)立的。
B+樹索引的所有數(shù)據(jù)均存儲在葉子節(jié)點(diǎn),而且數(shù)據(jù)是按照順序排列的,鏈表 連著的。那么 B+樹使得范圍查找,排序查找,分組查找以及去重查找變得異 常簡單。.

B+樹非葉子節(jié)點(diǎn)上是不存儲數(shù)據(jù)的,僅存儲鍵值,而 B-樹節(jié)點(diǎn)中不僅存儲鍵 值,也會存儲數(shù)據(jù)。innodb 中頁的默認(rèn)大小是 16KB,如果不存儲數(shù)據(jù),那么 就會存儲更多的鍵值,相應(yīng)的樹的階數(shù)(節(jié)點(diǎn)的子節(jié)點(diǎn)樹)就會更大,樹就會 更矮更胖,如此一來我們查找數(shù)據(jù)進(jìn)行磁盤的 IO 次數(shù)有會再次減少,數(shù)據(jù)查詢 的效率也會更快.

為什么不用紅黑樹做索引?
紅黑樹是一種自平衡的二叉搜索樹,它在平衡性和查找效率上是非常好的。然而,紅黑樹在磁盤存儲和數(shù)據(jù)庫索引場景下可能不如B+樹效率高效。這是由于以下幾個(gè)原因:
磁盤IO效率:B+樹采用了一種層次化的索引結(jié)構(gòu),它的非葉子節(jié)點(diǎn)只包含索引信息,而數(shù)據(jù)存儲在葉子節(jié)點(diǎn)上。這種結(jié)構(gòu)使得每次磁盤IO能夠獲取更多的數(shù)據(jù)。而紅黑樹在每個(gè)節(jié)點(diǎn)都存儲數(shù)據(jù),這樣會增加磁盤IO次數(shù),降低IO效率。
順序訪問性能:B+樹的葉子節(jié)點(diǎn)形成有序鏈表,這使得范圍查詢變得更高效,可以很方便地進(jìn)行范圍遍歷。而紅黑樹不具備這種特性。
內(nèi)存占用:紅黑樹在每個(gè)節(jié)點(diǎn)都需要存儲數(shù)據(jù),而B+樹的非葉子節(jié)點(diǎn)只需要存儲索引信息,這樣在內(nèi)存占用上,B+樹相對更節(jié)省。

12. Redis的使用場景

Redis 提供了豐富的數(shù)據(jù)類型,常見的有五種數(shù)據(jù)類型:String(字符串),Hash(哈希),List(列表),Set(集合)、Zset(有序集合)。
隨著 Redis 版本的更新,后面又支持了四種數(shù)據(jù)類型: BitMap(2.2 版新增)、HyperLogLog(2.8 版新增)、GEO(3.2 版新增)、Stream(5.0 版新增)。 Redis 五種數(shù)據(jù)類型的應(yīng)用場景:

String 類型的應(yīng)用場景:緩存對象、常規(guī)計(jì)數(shù)、分布式鎖、共享 session 信息等。
List 類型的應(yīng)用場景:消息隊(duì)列(但是有兩個(gè)問題:1. 生產(chǎn)者需要自行實(shí)現(xiàn)全局唯一 ID;2. 不能以消費(fèi)組形式消費(fèi)數(shù)據(jù))等。
Hash 類型:緩存對象、購物車等。
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ì)的場景,比如百萬級網(wǎng)頁 UV 計(jì)數(shù)等;
GEO(3.2 版新增):存儲地理位置信息的場景,比如滴滴叫車;
Stream(5.0 版新增):消息隊(duì)列,相比于基于 List 類型實(shí)現(xiàn)的消息隊(duì)列,有這兩個(gè)特有的特性:自動(dòng)生成全局唯一消息ID,支持以消費(fèi)組形式消費(fèi)數(shù)據(jù)。

13. redis 為什么快

Redis 的大部分操作都在內(nèi)存中完成,并且采用了高效的數(shù)據(jù)結(jié)構(gòu),因此 Redis 瓶頸可能是機(jī)器的內(nèi)存或者網(wǎng)絡(luò)帶寬,而并非 CPU,既然 CPU 不是瓶頸,那么自然就采用單線程的解決方案了;
Redis 采用單線程模型可以避免了多線程之間的競爭,省去了多線程切換帶來的時(shí)間和性能上的開銷,而且也不會導(dǎo)致死鎖問題。
Redis 采用了 I/O 多路復(fù)用機(jī)制處理大量的客戶端 Socket 請求,IO 多路復(fù)用機(jī)制是指一個(gè)線程處理多個(gè) IO 流,就是我們經(jīng)常聽到的 select/epoll 機(jī)制。簡單來說,在 Redis 只運(yùn)行單線程的情況下,該機(jī)制允許內(nèi)核中,同時(shí)存在多個(gè)監(jiān)聽 Socket 和已連接 Socket。內(nèi)核會一直監(jiān)聽這些 Socket 上的連接請求或數(shù)據(jù)請求。一旦有請求到達(dá),就會交給 Redis 線程處理,這就實(shí)現(xiàn)了一個(gè) Redis 線程處理多個(gè) IO 流的效果。

14.redis 分布式鎖如何實(shí)現(xiàn)的?可能會有哪些坑

可以參考我之前的文章
zookeeper實(shí)現(xiàn)分布式鎖
redis實(shí)現(xiàn)分布式鎖

15 算法題

怎樣判斷鏈表是否有環(huán)

 快慢指針實(shí)現(xiàn)public class ListNode {int val;ListNode next;ListNode(int val) {this.val = val;this.next = null;}
}public boolean hasCycle(ListNode head) {if (head == null || head.next == null) {// 如果鏈表為空或只有一個(gè)節(jié)點(diǎn),肯定沒有環(huán)return false;}ListNode slow = head;ListNode fast = head;while (fast != null && fast.next != null) {slow = slow.next;      // 慢指針移動(dòng)一步fast = fast.next.next; // 快指針移動(dòng)兩步// 如果快指針追上了慢指針,說明鏈表中有環(huán)if (slow == fast) {return true;}}// 如果快指針到達(dá)鏈表末尾,說明沒有環(huán)return false;
}

刪除倒數(shù)第 n 個(gè)節(jié)點(diǎn)

public ListNode removeNthFromEnd(ListNode head, int n) {// 創(chuàng)建一個(gè)虛擬頭節(jié)點(diǎn),以便于處理刪除頭節(jié)點(diǎn)的情況ListNode dummy = new ListNode(0);dummy.next = head;ListNode first = dummy;ListNode second = dummy;// 將first指針向前移動(dòng)n+1步for (int i = 0; i <= n; i++) {first = first.next;}// 同時(shí)移動(dòng)first和second,直到first到達(dá)鏈表末尾while (first != null) {first = first.next;second = second.next;}// 刪除倒數(shù)第n個(gè)節(jié)點(diǎn)second.next = second.next.next;return dummy.next; // 返回新的頭節(jié)點(diǎn)
}
http://www.risenshineclean.com/news/7424.html

相關(guān)文章:

  • 免費(fèi)做網(wǎng)站電話市場營銷策略有哪些
  • 網(wǎng)站下載的軟件怎么安裝如何做百度競價(jià)推廣
  • mvc 網(wǎng)站建設(shè)線上運(yùn)營推廣
  • 貴州高端網(wǎng)站建設(shè)seo管理系統(tǒng)創(chuàng)作
  • 手機(jī)網(wǎng)站建設(shè)官網(wǎng)seo優(yōu)化網(wǎng)站技術(shù)排名百度推廣
  • 江門網(wǎng)站建設(shè)公司百度平臺客服聯(lián)系方式
  • 餐飲官網(wǎng)建站模板網(wǎng)站推廣及seo方案
  • 網(wǎng)站左下角廣告代碼百度瀏覽器網(wǎng)址鏈接
  • wordpress商城插件收費(fèi)seo優(yōu)化論壇
  • 推廣網(wǎng)站有多少家鄭州seo公司哪家好
  • 怎樣做天貓網(wǎng)站視頻李江seo
  • 一級造價(jià)工程師報(bào)名網(wǎng)站軟文是指什么
  • 中山商城型網(wǎng)站建設(shè)企業(yè)模板建站
  • com網(wǎng)站建設(shè)app開發(fā)費(fèi)用一覽表
  • 帝國新聞網(wǎng)站模板近一周的新聞大事熱點(diǎn)
  • 網(wǎng)站建設(shè) php東莞seo網(wǎng)絡(luò)公司
  • 橙色企業(yè)網(wǎng)站模板網(wǎng)店推廣有哪些
  • 廣西欽州有人幫做網(wǎng)站的公司嗎百度地圖3d實(shí)景地圖
  • 綏化市建設(shè)工程網(wǎng)站招投標(biāo)app推廣公司怎么對接業(yè)務(wù)
  • 新蒲建設(shè)集團(tuán)網(wǎng)站數(shù)據(jù)交換平臺
  • 如何做視頻網(wǎng)站技術(shù)指標(biāo)網(wǎng)絡(luò)營銷策劃的流程
  • 大安移動(dòng)網(wǎng)站建設(shè)西安企業(yè)seo
  • 展示型手機(jī)網(wǎng)站模板seo就業(yè)
  • 湖南省建設(shè)廳網(wǎng)站首頁網(wǎng)絡(luò)顧問
  • 幫企業(yè)外賣網(wǎng)站做推移動(dòng)網(wǎng)站優(yōu)化排名
  • 網(wǎng)站免費(fèi)優(yōu)化工具怎樣宣傳網(wǎng)站
  • 在建設(shè)政府門戶網(wǎng)站時(shí)要充分考慮到引流推廣是什么意思
  • 廈門網(wǎng)紅鄭州seo技術(shù)
  • 網(wǎng)站建設(shè) 網(wǎng)站優(yōu)化5118數(shù)據(jù)分析平臺官網(wǎng)
  • 免費(fèi)域名申請哪個(gè)網(wǎng)站好產(chǎn)品推廣方案ppt