?近期線上的redis業(yè)務(wù)集群因?yàn)椴幻髟虻臄?shù)據(jù)寫入會(huì)偶發(fā)的出現(xiàn)內(nèi)存使用過(guò)高的問(wèn)題,針對(duì)這個(gè)現(xiàn)象特意在業(yè)務(wù)側(cè)代碼針對(duì)redis的寫操作增加了切面攔截監(jiān)控太雨,監(jiān)控各類redis的數(shù)據(jù)寫入的榛。事情的初衷本來(lái)是為了定位偶發(fā)的數(shù)據(jù)寫入结澄,但是意外的收獲是竟然發(fā)現(xiàn)了線上存在大量不合理緩存數(shù)據(jù)的寫入赞辩。
?根據(jù)常識(shí)朴沿,redis的緩存從直觀的理解上來(lái)說(shuō)應(yīng)該屬于讀多寫少的場(chǎng)景猜谚,如果線上出現(xiàn)大量持續(xù)的緩存寫入,那么大概率是緩存沒(méi)有命中赌渣,這里的原因可能是redis的key設(shè)計(jì)不一致或緩存本身在短時(shí)間內(nèi)就不會(huì)被再次訪問(wèn)魏铅。而湊巧的是我們的項(xiàng)目中居然同時(shí)存在上述兩種場(chǎng)景的問(wèn)題,讓人覺(jué)得苦笑不得坚芜。
?首先針對(duì)緩存設(shè)計(jì)和使用是需要針對(duì)業(yè)務(wù)場(chǎng)景去設(shè)計(jì)览芳,有些業(yè)務(wù)場(chǎng)景決定了在緩存有效時(shí)間內(nèi)基本上不會(huì)發(fā)生二次訪問(wèn),那么這種場(chǎng)景就沒(méi)必要使用緩存占用內(nèi)存資源鸿竖。
?其次在選擇本地緩存和遠(yuǎn)程緩存的選擇上沧竟,綜合考慮緩存的數(shù)據(jù)量+單次請(qǐng)求訪問(wèn)緩存的次數(shù),優(yōu)先考慮使用本地緩存代替遠(yuǎn)程緩存缚忧,頻繁訪問(wèn)遠(yuǎn)程緩存的網(wǎng)絡(luò)開(kāi)銷成本也是非常大的悟泵。
?最后在優(yōu)化性能的時(shí)候,綜合考量業(yè)務(wù)側(cè)和技術(shù)側(cè)的優(yōu)化闪水,從業(yè)務(wù)團(tuán)隊(duì)的經(jīng)驗(yàn)來(lái)說(shuō)業(yè)務(wù)側(cè)的優(yōu)化帶來(lái)的效果遠(yuǎn)遠(yuǎn)大于技術(shù)側(cè)的優(yōu)化糕非,不要太過(guò)于執(zhí)著技術(shù)優(yōu)化。
?近期在不斷的踩坑和爬坑中越來(lái)越意識(shí)到我們往往忽略日常基礎(chǔ)的東西朽肥,過(guò)于追求所謂的高大上技術(shù)了禁筏。