
專注用戶體驗設(shè)計與開發(fā)
-
商務(wù)合作
- 郵箱:123456789@qq.com
- 手機:15323711532
- 座機:0755-84185494
- 地址:廣東省深圳市龍崗區(qū)布吉中興路21號基業(yè)大廈
Copyright ? 2015 深圳市鑫惠廣網(wǎng)絡(luò)科技有限公司 粵ICP備2023111395號
緩存指的是將需要頻繁訪問的網(wǎng)絡(luò)內(nèi)容存放在離用戶較近、訪問速度更快的系統(tǒng)中,以提高內(nèi)容訪問速度的一種技術(shù)。緩存服務(wù)器就是存放頻繁訪問內(nèi)容的服務(wù)器。
上面的這種說法是一種通俗的說法。在具體的項目架構(gòu)中,緩存服務(wù),往往指的把一些用戶頻繁訪問的資源放入到內(nèi)存里面。收到數(shù)據(jù)快速返還給用戶。舉一個簡單的例子
通過上面的模型我們看出,當(dāng)用戶量少,這個訪問速度還是可以接受。但是當(dāng)用戶量上來以后,可能對服務(wù)器造成致命性的打擊。大家都知道查詢數(shù)據(jù)庫或者讀取文件 這是非常耗時的操作。當(dāng)用戶量少的時候,你或許感覺不出來速度的快慢。但是仔細(xì)想想當(dāng)用戶是成千上萬的時候就會導(dǎo)致數(shù)據(jù)庫的擁堵從而導(dǎo)致這個服務(wù)的宕機。
在上面的模型中我們很容易想到的解決方案是,1.增加數(shù)據(jù)庫的配置,來滿足更多用戶的同時訪問,2. 想辦法在登錄服務(wù)器和數(shù)據(jù)庫 之間增加一層緩存層,把用戶的熱點數(shù)據(jù)放到內(nèi)存里面不需要每次都請求數(shù)據(jù)庫。
第一種方案仔細(xì)想一想是行不通的,因為硬件資源是有限。不能無限制的增加數(shù)據(jù)庫的配置來滿足我們的需求。
第二種方案使我們目前想到的最優(yōu)解決方案了。我們可以通過軟件層面的問題來解決一些硬件層面的問題。所以這個請求就會變成下面的這個圖
上面的這個圖目前可以說是我能想到的最優(yōu)解決方案了,當(dāng)用戶訪問緩存服務(wù)沒有數(shù)據(jù)的時候就會從數(shù)據(jù)庫服務(wù)拉去數(shù)據(jù),同時在緩存服務(wù)里面留下緩存,下次用戶再訪問的時候就會從緩存服務(wù)直接返回給用戶,因為數(shù)據(jù)都在內(nèi)存里面所以速度會很快。
不過這個時候有人會可能看出問題來,那就是數(shù)據(jù)的一致性問題,因為同一份數(shù)據(jù)在 緩存和數(shù)據(jù)庫都有。所以我說這方面目前的方案是最優(yōu)的但不是最好的。多一個地方存儲數(shù)據(jù),肯定會增加數(shù)據(jù)不一直的風(fēng)險,這或許就是魚和熊掌不可兼得。不過我們目前用它肯定是利大于弊。因為可以服務(wù)更多的用戶。數(shù)據(jù)的一致性我們可以想很多的方案盡量來減少數(shù)據(jù)的不一致性。
不過緩存服務(wù)對于那些很久都不變一次的數(shù)據(jù),絕對是一個利器,比如我們在游戲里面的排行榜,根本不需要做到實時變化。而這個數(shù)據(jù)又是一個熱點數(shù)據(jù),查詢量居多。這個時候就體驗到了 緩存服務(wù)帶來的快感。
現(xiàn)在比較成熟的數(shù)據(jù)服務(wù)器 有redis 和 Memcache ,這兩種服務(wù)各有優(yōu)缺點,大家可以根據(jù)自己的項目選擇。還有一種就是自己實現(xiàn)的。不過這些需要注意在使用的時候不能亂用,例如大家都知道 現(xiàn)在這種做法其實是拿空間換的時間,這里的空間大多指的是內(nèi)存,內(nèi)存也是硬件,所以肯定不能無線擴展。所以一定要定好淘汰策略,來釋放內(nèi)存。很多情況下需要根據(jù)自己的業(yè)務(wù)來定制這個淘汰策略,例如我們的用戶信息在內(nèi)存里面是緩存6個小時,這個是通過分析我們的用戶行為之后得到的數(shù)據(jù)。所以這個度大家一定要把握好。
寫了這么多,其實就是告訴大家項目架構(gòu)的演化,都是在需求中進(jìn)化出來。當(dāng)你在實現(xiàn)一個業(yè)務(wù)功能的時候可以想的更多。上面的模型其實是很簡單的項目模型了在實際項目中,我們還會出現(xiàn)二級緩存,三級緩存 等等。在開發(fā)游戲服務(wù)器斷時 能讓用戶多塊拿到數(shù)據(jù)就多塊,要不整個游戲體驗就感覺特別的卡。
專注用戶體驗設(shè)計與開發(fā)
Copyright ? 2015 深圳市鑫惠廣網(wǎng)絡(luò)科技有限公司 粵ICP備2023111395號