緩存技術(shù)是用來(lái)提升程序運(yùn)行性能的常見(jiàn)手段,如你所見(jiàn), 阿里巴巴、新浪微博、美團(tuán)網(wǎng)等互聯(lián)網(wǎng)龍頭企業(yè)都是用緩存技術(shù)來(lái)提升自己家網(wǎng)站的性能。然而,任何事物都有兩面性, 緩存技術(shù)使用得當(dāng)帶來(lái)的好處自然不言而喻, 但是如果使用不當(dāng), 產(chǎn)生的副作用也夠讓人喝一壺的。
我們寫服務(wù)器程序時(shí),使用緩存的目的無(wú)非就是減少數(shù)據(jù)庫(kù)訪問(wèn)次數(shù)降低數(shù)據(jù)庫(kù)的壓力和提升程序的響應(yīng)時(shí)間, 然而根據(jù)具體的使用場(chǎng)景又可以派生出無(wú)數(shù)種情況, 比如說(shuō)
程序頻繁讀取數(shù)據(jù)庫(kù), 但是查詢獲得的結(jié)果卻總是相同的,這部分相同的結(jié)果是不是可以放入緩存 ?
獲得查詢結(jié)果要進(jìn)行復(fù)雜的運(yùn)算,非常消耗時(shí)間, 運(yùn)算結(jié)果是不是可以放入緩存 ?
有一些在網(wǎng)站每個(gè)頁(yè)面都需要使用的數(shù)據(jù), 比如說(shuō)用戶數(shù)據(jù), 是不是可以放入緩存 ?
還有另外不勝枚舉等等各種情況,概括起來(lái)就是那些變化不那么頻繁, 從源頭讀取又顯得耗費(fèi)資源和性能的數(shù)據(jù), 是不是都應(yīng)該放入緩存 ?
既然身為行業(yè)技術(shù)風(fēng)向標(biāo)的淘寶、美團(tuán)、新浪里面的技術(shù)大牛們都在使用緩存技術(shù), 那么咱們自然也得跟上他們的腳步。 然而不知道大家有沒(méi)有聽(tīng)到有這樣一種流傳甚廣說(shuō)法:“在選擇一樣?xùn)|西前,請(qǐng)先問(wèn)一下自己,我喜歡嗎? 我適合嗎?我需要嗎?”, 具體到我們?cè)诠ぷ髦羞x擇使用某種技術(shù),喜歡其實(shí)不應(yīng)該是左右我們選擇某項(xiàng)技術(shù)的關(guān)鍵