電子商務(wù)網(wǎng)站開發(fā)之如何緩存系統(tǒng)
對于一個(gè)電商系統(tǒng),緩存是重要組成部分,提升系統(tǒng)性能的主要方式之一就是緩存。它可以擋掉大部分的數(shù)據(jù)庫訪問的沖擊,如果沒有它,系統(tǒng)很可能會(huì)因?yàn)閿?shù)據(jù)庫不可用導(dǎo)致整個(gè)系統(tǒng)崩潰。
但是緩存帶來了另外一些棘手的問題: 數(shù)據(jù)的一致性和實(shí)時(shí)性。
例如,數(shù)據(jù)庫中的數(shù)據(jù)狀態(tài)已經(jīng)改變,但是在頁面上看到的仍然是緩存的舊值,直到緩沖時(shí)間失效之后,才能重新更新緩存。這個(gè)問題怎么解決?
還有就是,緩存數(shù)據(jù)如果沒有失效的話,是會(huì)一直保持在內(nèi)存中的,所以對服務(wù)器的內(nèi)存也是負(fù)擔(dān),那么什么數(shù)據(jù)可以放緩存,什么數(shù)據(jù)不可以,這是系統(tǒng)設(shè)計(jì)之初必須考慮的問題。
什么數(shù)據(jù)可以放緩存?
1,不需要實(shí)時(shí)更新但是又極其消耗數(shù)據(jù)庫的數(shù)據(jù)。比如網(wǎng)站首頁的商品銷售的排行榜,熱搜商品等等,這些數(shù)據(jù)基本上都是一天統(tǒng)計(jì)一次,用戶不會(huì)關(guān)注其是否是實(shí)時(shí)的。
2,需要實(shí)時(shí)更新,但是數(shù)據(jù)更新的頻率不高的數(shù)據(jù)。
3,每次獲取這些數(shù)據(jù)都經(jīng)過復(fù)雜的處理邏輯,比如生成報(bào)表。
什么數(shù)據(jù)不應(yīng)該使用緩存?
實(shí)際上,在電商系統(tǒng)中,大部分?jǐn)?shù)據(jù)都是可以緩存的,不能使用緩存的數(shù)據(jù)很少。這類數(shù)據(jù)包括比如涉及到錢、密鑰、業(yè)務(wù)關(guān)鍵性核心數(shù)據(jù)等。總之,如果你發(fā)現(xiàn),系統(tǒng)里面的大部分?jǐn)?shù)據(jù)都不能使用緩存,這說明架構(gòu)本身出了問題。
如何解決一致性和實(shí)時(shí)性的問題?
保證一致性和實(shí)時(shí)性的辦法就是:一旦數(shù)據(jù)庫更新了,就必須把原來的緩存更新。
說一說我們的緩存方案:
我們目前的緩存系統(tǒng):Redis(主從)+ RabbitMQ + 緩存清理服務(wù)組成,具體如下圖:
緩存清理作業(yè)訂閱 RabbitMQ消息隊(duì)列,一有數(shù)據(jù)更新進(jìn)入隊(duì)列,就將數(shù)據(jù)重新更新到Redis緩存服務(wù)器。
當(dāng)然,有些朋友的方案,是數(shù)據(jù)庫更新完成之后,立馬去更新相關(guān)緩存數(shù)據(jù)。這樣就不需要MQ 和 緩存清理作業(yè)。不過,這同時(shí)也增加了系統(tǒng)的耦合性。具體得看自己的業(yè)務(wù)場景和平臺(tái)大小。
<hishop(hydrodefense.cn)是國內(nèi)知名企業(yè)級電商平臺(tái)提供商,為企業(yè)級商家提供最佳的系統(tǒng)開發(fā)(多種模式電商平臺(tái)搭建:B2B/B2B2C/B2C/O2O/新零售等)、供應(yīng)鏈系統(tǒng)搭建及電商行業(yè)解決方案服務(wù)>
-
B2B2C多用戶商城系統(tǒng)支持企業(yè)自營與商戶入駐模式共存 會(huì)員一站式精細(xì)化營銷工具 多用戶分銷,帶來爆發(fā)式增長
系統(tǒng)支持平臺(tái)自營+供應(yīng)商店鋪共存的經(jīng)營模式(類天貓&京東模式),幫助企業(yè)打造生態(tài)級商業(yè)平臺(tái)為目的的電子商務(wù)系統(tǒng)。
免費(fèi)試用系統(tǒng) -
B2B2B電商交易系統(tǒng)優(yōu)化供應(yīng)鏈協(xié)作 授信及賬期支付 商品按照數(shù)量階梯設(shè)價(jià)
全渠道訂貨/采購及經(jīng)銷商管理數(shù)字化系統(tǒng),實(shí)現(xiàn)供應(yīng)鏈整合和交易便捷化。
免費(fèi)試用系統(tǒng) -
S2B2B電商交易系統(tǒng)供銷一體化,提高市場集中度 集團(tuán)管控一體化,有效實(shí)現(xiàn)供需匹配 移動(dòng)應(yīng)用一體化,提高運(yùn)營綜合效率
上下游資源整合數(shù)字化解決方案,賦能產(chǎn)業(yè)供應(yīng)鏈,構(gòu)建產(chǎn)業(yè)互聯(lián)網(wǎng)生態(tài)體系。
免費(fèi)試用系統(tǒng)
