字節(jié)-一面+二面涼經(jīng)
之前面了幾家小廠,感覺一般。又加上字節(jié)約面,雖然知道字節(jié)挺看重面評(píng),但也實(shí)在想試試,就面了。12.17一面,12.18二面涼
一面
自我介紹+介紹項(xiàng)目
視頻播放記錄的hash結(jié)構(gòu)、點(diǎn)贊的set的key用的是什么?
記錄播放進(jìn)度的hash設(shè)置過(guò)期時(shí)間了嗎?能不能只對(duì)某個(gè)hashkey設(shè)置過(guò)期時(shí)間。
你的排行榜刷新時(shí)間怎么確定的?
為什么redis選擇跳表實(shí)現(xiàn)zset,而不是紅黑樹?
你認(rèn)為mysql建立索引應(yīng)該根據(jù)哪些標(biāo)準(zhǔn)選擇字段?
- 一個(gè)很長(zhǎng)的字符串也滿足:區(qū)分度高、不常變、經(jīng)常作為查詢條件的特點(diǎn),為什么很少對(duì)這種字段建立索引?
你在修改庫(kù)存時(shí),一條update會(huì)鎖住一行記錄。那如何應(yīng)對(duì)高并發(fā)?
為什么選擇rabbitmq作為消息隊(duì)列?
rabbitmq的消息確認(rèn)機(jī)制?
redisson的分布式鎖的結(jié)構(gòu),過(guò)期時(shí)間設(shè)置,超時(shí)續(xù)約機(jī)制。
領(lǐng)取優(yōu)惠券:redis中預(yù)判成功就返回成功信息嗎?你這時(shí)候還沒(méi)落庫(kù)。要是MQ消費(fèi)不成功,就落庫(kù)不了,你還能在后續(xù)使用嗎?
算法題: lc.島嶼數(shù)量,不修改原有元素,借助vis數(shù)組。(遍歷的一行代碼寫錯(cuò)了,debug10min才看出來(lái))
反問(wèn):建議進(jìn)一步鞏固基礎(chǔ),對(duì)校招生更看重基礎(chǔ)
二面
自我介紹+介紹項(xiàng)目
你為什么要考慮合并寫?mysql的并發(fā)量,redis的并發(fā)?
你在什么場(chǎng)景下會(huì)選擇用redis?什么場(chǎng)景用mysql?
對(duì)于抖音的播放進(jìn)度記錄(上億并發(fā)),你會(huì)怎么設(shè)計(jì)?
redis的原始命令:對(duì)hash、set 的原始操作命令。(好久沒(méi)用,回答錯(cuò)了)
寫了一個(gè)連表+子查詢
- order(orderId, userid), user(userid, username),需要統(tǒng)計(jì)出訂單數(shù)大于3的orderid,userid,username
explain 如何看先走子查詢還是外面的查詢?
explain命令的type有哪些類型:主要有:const(唯一索引上單條匹配)、ref(非唯一索引上多條匹配)、range(索引上范圍)、index(使用索引遍歷全表)、all(全表)
給了一些場(chǎng)景,怎么建立索引,select * from test where a = 1 and b = 1; select * from test where a between(2,5) and b = 1;
算法題:模擬對(duì)任務(wù)的請(qǐng)求限制,任務(wù)具有處理時(shí)間,同一時(shí)間只能處理兩個(gè)任務(wù)。A(1,1000) B(2,500) C(3,300) D(4,400),輸出 2-3-1-4。(這個(gè)直接用線程池或者信號(hào)量控制并發(fā)線程數(shù)應(yīng)該就可以了,但當(dāng)時(shí)沒(méi)想到,寄)
- 只說(shuō)了大致思路,進(jìn)一步提問(wèn)是否有無(wú)鎖方案。(內(nèi)置的線程池算是無(wú)鎖方案嗎)
反問(wèn):可能見我答的不咋滴,還安慰我說(shuō),每個(gè)人的知識(shí)面不一樣,面試不一定非要全部答出來(lái)qwq
總結(jié):繼續(xù)沉淀吧。
#字節(jié)求職進(jìn)展匯總#