一、簡(jiǎn)述
緩存,是解決性能問(wèn)題的一種必不可少的方法。簡(jiǎn)單的說(shuō),cache 就是為了提升系統(tǒng)性能而開(kāi)辟的一塊內(nèi)存空間。緩存的主要作用是暫時(shí)在內(nèi)存中保存業(yè)務(wù)系統(tǒng)的數(shù)據(jù)處理結(jié)果,并且等待下次訪問(wèn)使用。緩存在很多系統(tǒng)和架構(gòu)中都用廣泛的應(yīng)用,例如:
- CPU緩存
- 操作系統(tǒng)緩存
- 本地緩存
- 分布式緩存
- HTTP緩存
- 數(shù)據(jù)庫(kù)緩存
等等,可以說(shuō)在計(jì)算機(jī)和網(wǎng)絡(luò)領(lǐng)域,緩存無(wú)處不在。可以這么說(shuō),只要有硬件性能不對(duì)等,涉及到網(wǎng)絡(luò)傳輸?shù)牡胤蕉紩?huì)有緩存的身影。
二、高性能
用戶第一次訪問(wèn)數(shù)據(jù)庫(kù)中的某些數(shù)據(jù),這個(gè)過(guò)程會(huì)比較慢。因?yàn)閿?shù)據(jù)是從硬盤(pán)上讀取的。將該用戶訪問(wèn)的數(shù)據(jù)存在緩存中,這樣后面的請(qǐng)求就去緩存中讀取,使得請(qǐng)求能夠迅速響應(yīng)。操作緩存就是直接操作內(nèi)存,所以速度相當(dāng)快。如果數(shù)據(jù)庫(kù)中的對(duì)應(yīng)數(shù)據(jù)改變之后,同步改變緩存中相應(yīng)的數(shù)據(jù)即可。

根據(jù)交互效果的不同,這個(gè)響應(yīng)時(shí)間沒(méi)有固定標(biāo)準(zhǔn)。在理想狀態(tài)下,頁(yè)面跳轉(zhuǎn)需要在瞬間解決,對(duì)于頁(yè)內(nèi)操作則需要在剎那間解決。超過(guò)一彈指的耗時(shí)操作要有進(jìn)度提示,并且可以隨時(shí)中止或取消,這樣才能給用戶最好的體驗(yàn)。那么瞬間、剎那、一彈指具體是多少時(shí)間呢?根據(jù)《摩訶僧祗律》記載:
一剎那者為一念,二十念為一瞬,二十瞬為一彈指,二十彈指為一羅預(yù),二十羅預(yù)為一須臾,一日一夜有三十須臾。
經(jīng)計(jì)算,一瞬間為0.36 秒,一剎那有 0.018 秒,一彈指長(zhǎng)達(dá) 7.2 秒。
三、高并發(fā)

直接操作緩存能夠承受的請(qǐng)求是遠(yuǎn)遠(yuǎn)大于直接訪問(wèn)數(shù)據(jù)庫(kù)的,所以可以考慮把數(shù)據(jù)庫(kù)中的部分?jǐn)?shù)據(jù)轉(zhuǎn)移到緩存中去,這樣用戶的一部分請(qǐng)求會(huì)直接到緩存這里而不用經(jīng)過(guò)數(shù)據(jù)庫(kù)。
