- 論壇徽章:
- 0
|
本帖最后由 yanyangtian4502 于 2012-05-17 16:35 編輯
緩存的策略是什么
我這里自己將其總結(jié)為三個(gè):
1.全緩存
2.半緩存
3.基于統(tǒng)計(jì)的緩存
為了說明這個(gè)問題,我這里以分頁為例子來說明這個(gè)問題,我這里給出一個(gè)圖,就是平時(shí)我們看到的分頁的圖,
20120517162331.png (1.52 KB, 下載次數(shù): 89)
下載附件
2012-05-17 16:23 上傳
很多的時(shí)候,在大量數(shù)據(jù)展示的過程中,我們總是喜歡分頁展示,那個(gè),如何設(shè)計(jì)這個(gè)分頁的。
當(dāng)然,我們完全可以一頁頁的去數(shù)據(jù)庫中獲取相應(yīng)的數(shù)據(jù),但是很多的時(shí)候,我們不是這樣做的,例如,每頁數(shù)據(jù)有20條,我們可能會(huì)實(shí)現(xiàn)預(yù)加載100條數(shù)據(jù)在緩存中,每次展示將一頁的數(shù)據(jù)進(jìn)行展示。
下面,就開始說說這個(gè)“全緩存”。
接著上面的分頁的例子,我們預(yù)先取來100條,然后用戶就不斷的翻頁,此時(shí),如果用戶翻到了第6頁,或者后面,此時(shí),我們沒有緩存后面的數(shù)據(jù),此時(shí),我們就開始再次去獲取100條數(shù)據(jù),那么此時(shí),在緩存中就有了200條,并且是從1到10頁的。以此類推,我將之定義為“全緩存“,因?yàn)樽詈蟮慕Y(jié)果將會(huì)緩存用戶查看的所有數(shù)據(jù)。(其實(shí),很少有用戶想翻到后面的十幾頁去的)
這種策略非常常用,但是不可濫用,要針對(duì)不同的類型的應(yīng)用,并且還得看數(shù)據(jù)變化的頻率。因?yàn)樯圆蛔⒁,就是?nèi)存使用過多了。
這種方式最理想的利用場景在站點(diǎn)沒有搜索功能,并且通過類似Tag標(biāo)簽來代替查詢的項(xiàng)目中。如圖的例子:
20120517163241.png (36.18 KB, 下載次數(shù): 88)
下載附件
2012-05-17 16:33 上傳
現(xiàn)在的很多的站點(diǎn)不能沒有搜索功能,當(dāng)然,我們可以酌情的考慮使用這種方式。我們后面會(huì)介紹將這個(gè)方法與其他的結(jié)合起來,構(gòu)造更加智能的策略。 |
|