什么是 I/O 多路復(fù)用:I/O 多路復(fù)用指的是可以通過某種機(jī)制,監(jiān)視多個(gè)文件描述符,一旦某個(gè)文件描述符準(zhǔn)備就緒后,就能夠通知程序進(jìn)行相關(guān)的讀寫操作,目前 I/O 多路復(fù)用機(jī)...
什么是 I/O 多路復(fù)用:I/O 多路復(fù)用指的是可以通過某種機(jī)制,監(jiān)視多個(gè)文件描述符,一旦某個(gè)文件描述符準(zhǔn)備就緒后,就能夠通知程序進(jìn)行相關(guān)的讀寫操作,目前 I/O 多路復(fù)用機(jī)...
ARQ 協(xié)議是一個(gè)自動重傳請求協(xié)議,主要通過確認(rèn)和超時(shí)兩個(gè)機(jī)制,在不可靠服務(wù)的基礎(chǔ)上實(shí)現(xiàn)可靠信息的發(fā)送。如果發(fā)送方在發(fā)送后的一段時(shí)間沒有接收到確認(rèn),則會自動再次重新發(fā)送,AR...
Cookie 和 Session 都是會話技術(shù),Cookie 運(yùn)行在客戶端,Session 運(yùn)行在服務(wù)器端 Cookie 的大小有限制,并且瀏覽器對保存 Cookie 的個(gè)數(shù)...
檢驗(yàn)和:這是一個(gè)端到端的檢驗(yàn)和,目的是用于檢測數(shù)據(jù)在傳輸過程中有沒有發(fā)生變化,如果接受到的 TCP 報(bào)文段檢驗(yàn)和發(fā)生了差別,那么 TCP 會丟棄這個(gè)報(bào)文段 流量控制:TCP ...
TCP 是面向連接的,可靠性高一些;UDP 是基于非連接的,可靠性低一些 由于 TCP 是面向連接的通信,需要三次握手、確認(rèn)連接等過程,會有延時(shí),實(shí)時(shí)性差一些,并且建立連接的...
MySQL 主從復(fù)制原理:主庫(Master) 有一個(gè) I/O 線程,從庫(Slave) 有一個(gè) I/O 線程和 SQL 線程,從庫的 I/O 線程負(fù)責(zé)讀取主庫的 binlo...
PHP 中的所有變量都是被存儲在 zval 變量容器中,在 zval 變量容器中主要是包含 變量名、變量值、變量類型 Type、以及另外兩個(gè)額外的字段 is_ref、refc...
PHP 數(shù)組的底層主要是通過 HashTable 實(shí)現(xiàn),HashTable 通過映射函數(shù)或者散列函數(shù)將 String Key 轉(zhuǎn)換成一個(gè)普通的數(shù)字下標(biāo),然后再將 Value ...
MySQL 用于衡量數(shù)據(jù)查詢的效率是 磁盤 I/O 次數(shù),一般來講索引比較大,尤其是對于關(guān)系型數(shù)據(jù)庫這種數(shù)據(jù)量俺的所以能達(dá)到億級別的,為了節(jié)省內(nèi)存的使用,一般會將索引存儲到...
共享鎖:共享鎖是讀鎖,是在執(zhí)行讀取操作的時(shí)候創(chuàng)建的。如果事務(wù) T 對 數(shù)據(jù) A 添加了共享鎖,那么其他事務(wù)只能再對數(shù)據(jù) A 添加 共享鎖而不能添加其他類型的鎖,對于已經(jīng)添加了...
redis 常見的數(shù)據(jù)結(jié)構(gòu)類型主要包含五種:String、Hash、List、Set、Sorted Set String String 數(shù)據(jù)結(jié)構(gòu)是最簡單的 Key->Valu...
LRU 是一個(gè)緩存置換算法,在緩存有限的情況下,如果有新的數(shù)據(jù)加載至緩存,則需要考慮將不會再繼續(xù)被訪問的數(shù)據(jù)剔除掉,但是緩存是否會被訪問是沒有辦法預(yù)測的,所以,LRU 是基于...
1.redis 服務(wù)器主進(jìn)程調(diào)用 fork() 函數(shù),生成一個(gè)子進(jìn)程2.redis 服務(wù)器主進(jìn)程可以繼續(xù)處理來自其他客戶端的請求,子進(jìn)程將內(nèi)存中的數(shù)據(jù)寫入到一個(gè)臨時(shí)的 rdb...
數(shù)據(jù)結(jié)構(gòu)是算法的基石,如果沒有扎實(shí)的數(shù)據(jù)結(jié)構(gòu)基礎(chǔ),要想把算法學(xué)好甚至融會貫通是非常困難的,而優(yōu)秀的算法又往往取決于你采用哪種數(shù)據(jù)結(jié)構(gòu) 數(shù)組、字符串(Array & Strin...
棧的定義 在我們軟件應(yīng)用中,棧這種 后進(jìn)先出 的數(shù)據(jù)結(jié)構(gòu)應(yīng)用非常廣泛。比如最常見到的瀏覽器,在使用瀏覽器訪問網(wǎng)頁時(shí)我們會發(fā)現(xiàn)無論是什么瀏覽器都會有一個(gè) 后退 鍵,點(diǎn)擊后退鍵可...
這篇文章開啟線性表的大版本更新2.0----循環(huán)鏈表 單循環(huán)鏈表 由前面關(guān)于單鏈表的介紹我們知道,在單鏈表中每個(gè)結(jié)點(diǎn)都只存儲了下一個(gè)結(jié)點(diǎn)的存儲地址,直到尾結(jié)點(diǎn)為 NULL,我...
這篇文章依然介紹線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)-單鏈表 單鏈表的整表創(chuàng)建 線性表順序存儲結(jié)構(gòu)的創(chuàng)建,其實(shí)就是一個(gè)數(shù)組的初始化,即聲明一個(gè)類型和容量確定的數(shù)組并賦值的過程。單鏈表和線性表...
順序存儲結(jié)構(gòu)不足的解決辦法 通過 線性表之?dāng)?shù)組 這篇文章的介紹,我們知道線性表的順序存儲是有缺點(diǎn)的,最大的缺點(diǎn)就是 插入、刪除時(shí)需要移動大量元素,對于像數(shù)組這樣在編程中常用的...
數(shù)組在開發(fā)中是我們最常見的一種數(shù)據(jù)結(jié)構(gòu),數(shù)組也是最重要的數(shù)據(jù)結(jié)構(gòu)之一,剛開始接觸編程的時(shí)候我就有一個(gè)疑惑:數(shù)組的下標(biāo)為什么是從 0 開始的,而不是從 1 開始,這樣不是更加直...