緩存技術(shù)是用來提升程序運(yùn)行性能的常見手段,如你所見, 阿里巴巴、新浪微博、美團(tuán)網(wǎng)等互聯(lián)網(wǎng)龍頭企業(yè)都是用緩存技術(shù)來提升自己家網(wǎng)站的性能。然而,任何事物都有兩面性, 緩存技術(shù)使用得當(dāng)帶來的好處自然不言而喻, 但是如果使用不當(dāng), 產(chǎn)生的副作用也夠讓人喝一壺的。

我們寫服務(wù)器程序時,使用緩存的目的無非就是減少數(shù)據(jù)庫訪問次數(shù)降低數(shù)據(jù)庫的壓力和提升程序的響應(yīng)時間, 然而根據(jù)具體的使用場景又可以派生出無數(shù)種情況, 比如說

程序頻繁讀取數(shù)據(jù)庫, 但是查詢獲得的結(jié)果卻總是相同的,這部分相同的結(jié)果是不是可以放入緩存 ?

獲得查詢結(jié)果要進(jìn)行復(fù)雜的運(yùn)算,非常消耗時間, 運(yùn)算結(jié)果是不是可以放入緩存 ?

有一些在網(wǎng)站每個頁面都需要使用的數(shù)據(jù), 比如說用戶數(shù)據(jù), 是不是可以放入緩存 ?

還有另外不勝枚舉等等各種情況,概括起來就是那些變化不那么頻繁, 從源頭讀取又顯得耗費(fèi)資源和性能的數(shù)據(jù), 是不是都應(yīng)該放入緩存 ?

既然身為行業(yè)技術(shù)風(fēng)向標(biāo)的淘寶、美團(tuán)、新浪里面的技術(shù)大牛們都在使用緩存技術(shù), 那么咱們自然也得跟上他們的腳步。 然而不知道大家有沒有聽到有這樣一種流傳甚廣說法:“在選擇一樣?xùn)|西前,請先問一下自己,我喜歡嗎? 我適合嗎?我需要嗎?”, 具體到我們在工作中選擇使用某種技術(shù),喜歡其實(shí)不應(yīng)該是左右我們選擇某項(xiàng)技術(shù)的關(guān)鍵