處理過(guò)線上問(wèn)題的同學(xué)基本上都會(huì)遇到系統(tǒng)突然運(yùn)行緩慢,CPU 100%,以及Full GC次數(shù)過(guò)多的問(wèn)題。當(dāng)然,這些問(wèn)題的最終導(dǎo)致的直觀現(xiàn)象就是系統(tǒng)運(yùn)行緩慢,并且有大量的報(bào)警。...
MVCC(Multi Version Concurrency Control的簡(jiǎn)稱),代表多版本并發(fā)控制。與MVCC相對(duì)的,是基于鎖的并發(fā)控制,Lock-Based Conc...
Netty 原理 Netty 是一個(gè)高性能、異步事件驅(qū)動(dòng)的NIO 框架,基于JAVA NIO 提供的API 實(shí)現(xiàn)。它提供了對(duì)TCP、UDP 和文件傳輸?shù)闹С?,作為一個(gè)異步NI...
前言 也許會(huì)有人感嘆某些人的運(yùn)氣比較好,但是他們不曾知道對(duì)方吃過(guò)多少苦,受過(guò)多少委屈。某些時(shí)候就是需要我們用心去發(fā)現(xiàn)突破點(diǎn),然后順勢(shì)而上,抓住機(jī)遇,那么你將會(huì)走向另外一條大道...
前言 零拷貝這三個(gè)字,一直是服務(wù)器網(wǎng)絡(luò)編程的關(guān)鍵字,任何性能優(yōu)化都離不開(kāi)。在 Java 程序員的世界,常用的零拷貝有 mmap 和 sendFile。那么,他們?cè)?OS 里,...
小菜雞最近在瘋狂面試中,就是為了能拿到一份滿意的offer,這不上周又去頭條受虐了。 面試過(guò)程中,由于小菜雞的充分準(zhǔn)備(letcode各種刷),各種算法題不在話下,順利的通過(guò)...
1、 runAsync 和 supplyAsync方法 CompletableFuture 提供了四個(gè)靜態(tài)方法來(lái)創(chuàng)建一個(gè)異步操作。 沒(méi)有指定Executor的方法會(huì)使用For...
Redis的pubsub.c是對(duì)pubsub功能的實(shí)現(xiàn)。Redis的pub/sub是一個(gè)穩(wěn)定快速的消息系統(tǒng)?;?ziplist 和 dict 實(shí)現(xiàn)。 主要包含了消息的發(fā)布、...
Redis的t_zset.c是對(duì)zset數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)。zset是由 dict 和zskiplist來(lái)實(shí)現(xiàn)的。 當(dāng)元素較少的時(shí)候,采用ziplist來(lái)實(shí)現(xiàn)zset。當(dāng)元素較多...
Redis的t_set.c是個(gè)set數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)。 當(dāng)元素都是Integer類型的時(shí)候,采用intset來(lái)實(shí)現(xiàn)。當(dāng)元素有非Integer類型的時(shí)候,采用dict來(lái)實(shí)現(xiàn)。 當(dāng)...
Redis的t_list.c是對(duì)list數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)。在Redis3.2之前,list數(shù)據(jù)結(jié)構(gòu)基于ziplist或linkedlist實(shí)現(xiàn)。在Redis3.2之后,list...
Redis的t_hash.c是對(duì)hash字典數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)。主要是基于ziplist、dict、sds實(shí)現(xiàn)。 當(dāng)元素較少的時(shí)候,使用ziplist來(lái)實(shí)現(xiàn)字典數(shù)據(jù)結(jié)構(gòu)。當(dāng)元素較...
Redis的t_string.c是對(duì)于string數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)。底層是基于 sds 及 dict 實(shí)現(xiàn)的。 首先,了解一下redisDb結(jié)構(gòu)。 Redis允許的最大字符串長(zhǎng)...