前言 數(shù)據(jù)庫(kù)應(yīng)該是所有后端開(kāi)發(fā)都會(huì)涉及的,數(shù)據(jù)庫(kù)事務(wù),很多業(yè)務(wù)場(chǎng)景可能并不要求很高,而且也很少出現(xiàn),經(jīng)常出現(xiàn)在高并發(fā),高流量的情況下,在未來(lái)迎接挑戰(zhàn)的時(shí)候,需要掌握相關(guān)的知識(shí)...
前言 數(shù)據(jù)庫(kù)應(yīng)該是所有后端開(kāi)發(fā)都會(huì)涉及的,數(shù)據(jù)庫(kù)事務(wù),很多業(yè)務(wù)場(chǎng)景可能并不要求很高,而且也很少出現(xiàn),經(jīng)常出現(xiàn)在高并發(fā),高流量的情況下,在未來(lái)迎接挑戰(zhàn)的時(shí)候,需要掌握相關(guān)的知識(shí)...
(一)前言 因?yàn)楣究蚣苁褂昧薲ubbo作為RPC框架,所以,對(duì)于dubbo進(jìn)行相應(yīng)的學(xué)習(xí),通過(guò)官網(wǎng)的學(xué)習(xí),源碼的閱讀,總結(jié)出以下的內(nèi)容,希望對(duì)dubbo有個(gè)更全面的認(rèn)識(shí),同...
前言 了解dubbo的時(shí)候,因?yàn)镾PI機(jī)制用到了動(dòng)態(tài)代理的機(jī)制,從而涉及到了類(lèi)加載機(jī)制相關(guān)的東西,整個(gè)概念也屬于非常底層的邏輯,也好久沒(méi)整理了,現(xiàn)整理一下,便于后續(xù)翻閱。盡可...
前言 在使用數(shù)據(jù)庫(kù)的時(shí)候,最需要了解的知識(shí)點(diǎn)肯定就是索引,所以,針對(duì)索引希望能夠整理出一些知識(shí)點(diǎn),做個(gè)簡(jiǎn)單總結(jié)。 索引結(jié)構(gòu) B+樹(shù) B+樹(shù)在之前的文章中已經(jīng)做了簡(jiǎn)單介紹多種樹(shù)...
(一)二叉樹(shù) 二叉樹(shù)指的是每個(gè)節(jié)點(diǎn)最多只能有兩個(gè)子樹(shù)的有序樹(shù)。 二叉樹(shù)特點(diǎn) 每個(gè)結(jié)點(diǎn)最多有兩顆子樹(shù),所以二叉樹(shù)中不存在度大于2的結(jié)點(diǎn)。 左子樹(shù)和右子樹(shù)是有順序的,次序不能任意...
前言 繼之前synchronized關(guān)鍵字之后,這里旨在介紹常見(jiàn)的鎖概念,源碼相關(guān)。內(nèi)容會(huì)進(jìn)行不定時(shí)更新,希望能更完善的整理鎖相關(guān)知識(shí)點(diǎn)。 公平鎖和非公平鎖 1.公平鎖 多個(gè)...
前言 關(guān)鍵字 synchronized可以保證在同一個(gè)時(shí)刻,只有一個(gè)線程可以執(zhí)行某個(gè)方法或者某個(gè)代碼塊(主要是對(duì)方法或者代碼塊中存在共享數(shù)據(jù)的操作),同時(shí)我們還應(yīng)該注意到sy...
(一)前言 學(xué)習(xí)多線程,要理解java內(nèi)存模型,才能理解多線程情況下,數(shù)據(jù)的變化,指令的運(yùn)行等,才能更好的了解多線程的運(yùn)行情況和日常使用的注意點(diǎn)。 (二)JMM與硬件內(nèi)存結(jié)構(gòu)...
前言 用過(guò)redis的人,或者去面試的人被問(wèn)redis的問(wèn)題,基本都會(huì)了解redis特別快。redis高校的原因: 1.單線程,減少了線程切換的消耗。 2.基于內(nèi)存操作 3....
前言 在閱讀公司自主封裝的jedis源碼過(guò)程中,了解到sentinel集群連接多個(gè)master,當(dāng)客戶(hù)端連接sentinel獲取對(duì)應(yīng)key的主節(jié)點(diǎn)信息時(shí),用到了一致性hash...
前言 因?yàn)橹熬€上redis集群主從切換,client端未感知,導(dǎo)致往從庫(kù)寫(xiě)數(shù)據(jù)報(bào)錯(cuò),所以學(xué)習(xí)并整理了redis集群相關(guān)知識(shí)點(diǎn)。 主從復(fù)制 主從復(fù)制,是只從一臺(tái)redis服務(wù)...
1.線上問(wèn)題進(jìn)程排查 通常我們會(huì)在線上發(fā)現(xiàn)一些內(nèi)存占用或者CPU占用比較高的進(jìn)程.使用top指定,我們可以看到當(dāng)前服務(wù)器占用CPU和內(nèi)存較高的一些進(jìn)程。同時(shí),我們可以通過(guò)lo...
1.redis是一個(gè)基于內(nèi)存的高性能key-value數(shù)據(jù)庫(kù)。 2.redis是單線程的,利用IO多路復(fù)用技術(shù)將并發(fā)訪問(wèn)變?yōu)榇性L問(wèn),同時(shí)提高了訪問(wèn)效率,以及原子化。 3.r...
緩存穿透 緩存穿透是指用戶(hù)請(qǐng)求的數(shù)據(jù)在緩存中不存在即沒(méi)有命中,同時(shí)在數(shù)據(jù)庫(kù)中也不存在,導(dǎo)致用戶(hù)每次請(qǐng)求該數(shù)據(jù)都要去數(shù)據(jù)庫(kù)中查詢(xún)一遍,然后返回空。 常見(jiàn)與惡意攻擊時(shí),不斷請(qǐng)求系...
概念 基于池化思想管理和使用線程的機(jī)制 優(yōu)點(diǎn) 降低資源消耗:重復(fù)利用已創(chuàng)建的線程,降低線程創(chuàng)建和銷(xiāo)毀曹成的損耗 提高響應(yīng)速度:無(wú)需等待線程創(chuàng)建可立即執(zhí)行 提高線程的可管理性:...
前言 在java開(kāi)發(fā)過(guò)程中,基本都會(huì)用到spring,說(shuō)起spring就會(huì)講到bean的生命周期,這里通過(guò)@autowired從源碼角度來(lái)講解bean的生命周期。 @Auto...