說(shuō)到緩存,我想大家跟我一樣都很興奮,當(dāng)我們?cè)庥鼍W(wǎng)站性能瓶頸的時(shí)候,緩存是一劑強(qiáng)心針,也是一粒緊急媽富隆,從而在優(yōu)化網(wǎng)站
性能方面冠上了第一定律的帽子,我們前年在做淘應(yīng)用的時(shí)候,就遭遇了性能瓶頸,短時(shí)間內(nèi)采用緩存緊急優(yōu)化,給我們大優(yōu)化之前爭(zhēng)取了
寶貴的時(shí)間。
一:緩存的種類
要說(shuō)緩存有多少種,太多了,比如瀏覽器緩存,文件緩存,片段緩存,數(shù)據(jù)庫(kù)緩存等等,合理利用這些緩存則能大幅度的提高系統(tǒng)性能,
利用不好反而會(huì)偷雞不成蝕把米,給服務(wù)器造成巨大的壓力,所以這里就存在一個(gè)緩存的使用原則的問(wèn)題。
二:合理的使用緩存
1. 讀寫小于10:1的情況下,不適合用緩存,我們用緩存的目的就是想分?jǐn)傁聰?shù)據(jù)庫(kù)的壓力以及利用內(nèi)存來(lái)提速性能,如果讀寫差不多,或者
壓根就沒(méi)讀過(guò),這樣的死數(shù)據(jù)就會(huì)造成內(nèi)存資源的浪費(fèi)。
2. 既然是緩存,就注定了它的資源是有限的,寶貴的,也就注定了我們必須合理利用它的內(nèi)存空間,也就被迫的讓我們清楚的認(rèn)識(shí)到熱點(diǎn)數(shù)據(jù),
不易修改的應(yīng)該放在緩存,反之不宜放。
3. 大公司在緩存方面做的好的地方就是在一個(gè)“控”字上,他們會(huì)為緩存專門做一套“緩存系統(tǒng)”,當(dāng)系統(tǒng)預(yù)加載的時(shí)候,同時(shí)也充當(dāng)內(nèi)存數(shù)據(jù)庫(kù)
使用,將這些元數(shù)據(jù)加載到緩存系統(tǒng)中,比如“縣市區(qū)”,“分類信息”等等作為預(yù)熱數(shù)據(jù)。
三:分布式緩存
一般情況下,會(huì)有兩種形式,第一種就是主從復(fù)制的模式,第二種就是分片的模式。
1:主從復(fù)制模式
這種模式曾今在項(xiàng)目中也用過(guò),就是一份內(nèi)存,多處備份,當(dāng)其中某一個(gè)緩存內(nèi)容中的數(shù)據(jù)有變化時(shí),會(huì)及時(shí)通知其他機(jī)器進(jìn)行緩存更新
或清除,這種模式的缺點(diǎn)在于比較容易受制于單臺(tái)機(jī)器的內(nèi)存限制,優(yōu)點(diǎn)在于用心跳機(jī)制及時(shí)用另一臺(tái)緩存機(jī)器頂替,那個(gè)時(shí)候我們使用120G
的大內(nèi)存,得益于項(xiàng)目業(yè)務(wù)規(guī)模的限制,否則當(dāng)機(jī)器內(nèi)存爆滿的時(shí)候就比較尷尬了,所以做大型網(wǎng)站還是謹(jǐn)慎使用吧,畢竟這個(gè)也是我們?cè)褡?/p>
了一些為了提升性能的嘗試。
2:分片的模式
這種模式在大型網(wǎng)站中還是被大量使用的,它的特點(diǎn)就是可以把一大坨數(shù)據(jù)通過(guò)一定的算法和配置分?jǐn)偟郊褐械娜舾膳_(tái)機(jī)器上,如果集群中
的某一臺(tái)機(jī)器掛了,沒(méi)關(guān)系,只會(huì)影響到該臺(tái)機(jī)器中的數(shù)據(jù),對(duì)數(shù)據(jù)庫(kù)不會(huì)造成很大的影響。一個(gè)典型的應(yīng)用就是memcache,memcache是一
個(gè)非常簡(jiǎn)單,實(shí)用,高效的分布式緩存架構(gòu),其實(shí)memcache最值得一提的就是“路由算法的一致性hash”技術(shù)使得我們的memcache集群可以
自由伸縮,不過(guò)現(xiàn)在已經(jīng)有很多的nosql產(chǎn)品,比如redis,couchdb,mongodb等等,讓我們?cè)谶@個(gè)世界上有了更多的選擇吧。
最近看到園子里面有很多抱怨聲,沒(méi)關(guān)系,如果覺(jué)得自己屈才了,歡迎來(lái)攜程試一試,只有你達(dá)不到的能力,沒(méi)有給不起你的薪資。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注