電商總結(七)緩存系統

  前段時間,在和朋友討論和研究緩存的使用,一直對緩存的使用搞的不太清楚,所以這次把和朋友討論過緩存系統的設計的相關問題總結總結。

?

  對于一個電商系統,緩存是重要組成部分,提升系統性能的主要方式之一就是緩存。它可以擋掉大部分的數據庫訪問的沖擊,如果沒有它,系統很可能會因為數據庫不可用導致整個系統崩潰。

?

  但是緩存帶來了另外一些棘手的問題: 數據的一致性和實時性。

  例如,數據庫中的數據狀態已經改變,但是在頁面上看到的仍然是緩存的舊值,直到緩沖時間失效之后,才能重新更新緩存。這個問題怎么解決?

  還有就是,緩存數據如果沒有失效的話,是會一直保持在內存中的,所以對服務器的內存也是負擔,那么什么數據可以放緩存,什么數據不可以,這是系統設計之初必須考慮的問題。

?

  什么數據可以放緩存?

    1,不需要實時更新但是又極其消耗數據庫的數據。比如網站首頁的商品銷售的排行榜,熱搜商品等等,這些數據基本上都是一天統計一次,用戶不會關注其是否是實時的。

    2,需要實時更新,但是數據更新的頻率不高的數據。

    3,每次獲取這些數據都經過復雜的處理邏輯,比如生成報表。

?

  什么數據不應該使用緩存?

    實際上,在電商系統中,大部分數據都是可以緩存的,不能使用緩存的數據很少。這類數據包括比如涉及到錢、密鑰、業務關鍵性核心數據等。總之,如果你發現,系統里面的大部分數據都不能使用緩存,這說明架構本身出了問題。

?

  如何解決一致性和實時性的問題?

    保證一致性和實時性的辦法就是:一旦數據庫更新了,就必須把原來的緩存更新。

?

  說一說我們的緩存方案:

    我們目前的緩存系統:Redis(主從)+ RabbitMQ + 緩存清理服務組成,具體如下圖:

    緩存清理作業訂閱 RabbitMQ消息隊列,一有數據更新進入隊列,就將數據重新更新到Redis緩存服務器。

?  

?

?

    當然,有些朋友的方案,是數據庫更新完成之后,立馬去更新相關緩存數據。這樣就不需要MQ 和 緩存清理作業。不過,這同時也增加了系統的耦合性。具體得看自己的業務場景和平臺大小。

?

轉載于:https://www.cnblogs.com/zhangweizhong/p/5884761.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/270834.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/270834.shtml
英文地址,請注明出處:http://en.pswp.cn/news/270834.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

操作系統:Win10自帶的8個基本功能非常實用

有些朋友總是喜歡安裝很多第三方軟件,但是卻沒有意識到win10自帶的基本功能,比這些第三方軟件更加好用。今天小編給大家介紹一下Win10自帶的八個功能,希望對大家能有所幫助! 一、保護眼睛:深色主題 辦公室職場人士&…

瘋狂游戲型計算機配置清單,電腦配置清單

想自己組裝電腦卻不知如何配置?下面是出國留學網實用資料欄目精心整理的組裝電腦配置清單,歡迎參考!【組裝電腦配置清單】電腦硬件,包括電腦中所有物理的零件,以此來區分它所包括或執行的數據和為硬件提供指令以完成任務的軟件。 …

在Android App中集成Google登錄

技術文章 來源:碼農網 發布:2016-09-19 瀏覽:194 摘要:今天,幾乎所有的web和移動app都自帶谷歌和Facebook登錄,這對app開發者和用戶來說是一個非常有用的功能,因為幾乎每個人都有一個谷歌/ Gmai…

python程序寫完后點哪個運行快_讓你的Python運行更快

討厭Python的人總是說,他們不想使用它的原因之一是它很 慢。嗯,特定程序(無論使用何種編程語言)是快還是慢,在很大程度上取決于編寫該程序的開發人員以及編寫優化而 快速的 程序的技能和能力 。因此,讓我們證明一些人是錯誤的&…

C語言理論作業—2

1.C語言基本數據類型及其占用的內存空間大小分別是:int:4字節,short[int]:2字節,long[int]:4字節,unsigned[int]:4字節,unsigned short[int]:2字節,unsigned long[int]:4字節,char:1字節&#x…

html 科幻模板,html5酷炫宇宙科幻周年慶典專題動畫模板

資源下載此資源下載價格為4D幣,請先登錄資源文件列表codedown123-0727-39/img/arrow-down-1.png , 1229codedown123-0727-39/img/arrow-down-2.png , 1190codedown123-0727-39/img/arrow-down-3.png , 1132codedown123-0727-39/img/asteroids-left.png , 7015codedo…

SQLServer數據庫設置項梳理

一、自動選項AUTO CLOSEON:數據庫將在最后一個用戶退出后完全關閉,它占用的資源也將釋放。當用戶嘗試再次使用該數據庫時,該數據庫將自動重新打開OFF:最后一個用戶退出后數據庫仍保持打開對于SQLServer Desktop Engine或 SQL Serv…

SQLServer創建數據庫詳解

1、創建數據庫介紹在創建數據庫之前,需要先確定數據庫的名稱、所有者、大小、存儲該數據庫的文件和文件組。數據庫所有者:創建數據庫的用戶。一般情況下,大多數產品對象由數據庫所有者擁有。2、創建數據庫注意事項創建數據庫需要擁有CREATE D…

Mac上IntelliJ IDEA設置類注釋和方法注釋帶作者和日期

在方法上標注注釋 1:idea左上角點擊Preferences 選擇Editor------Code Style----Live Templates 點擊右邊號 點擊Template Group,在彈框中添加一個分組 2:擊Template Group,在彈框中添加一個分組 3:選中新建的分組,點擊右邊號,選擇Live Template 4:在…

集群服務器分布式iis_Nginx+IIS分布式部署和負載均衡

標簽:1.IIS中部署2個網站創建2個網站,端口分別為9001、90022.下載Nginx可以進入Nginx官網進行下載,官網地址: http://nginx.org/,需要下載windows版的3.Nginx安裝3.1下載解壓到D盤根目錄下,打開conf目錄下的…

超級計算機的英語作文80字,英語作文_為什么這臺超級計算機如此快? (有聲) _滬江英語...

Why Is This Supercomputer So Superfast?Cray employees put the finishing touches on Titan at the Department of Energys Oak Ridge National Laboratory in Tennessee. The supercomputer may be the worlds fastest. Its designed to do 20 petaflops — or 20,000 tri…

HDU 1251 統計難題(Trie模版題)

統計難題 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others) Total Submission(s): 34909 Accepted Submission(s): 13109 Problem Description Ignatius最近遇到一個難題,老師交給他很多單詞(只有小寫字母組成,不會有重復的單詞出現)…

SQLServer數據庫收縮相關知識筆記

1、為什么要進行數據庫收縮?SQL Server 數據庫采取預先分配空間的方法來建立數據庫的數據文件或者日志文件,比如數據文件的空間分配了300MB,而實際上只占用了20MB空間,這樣就會造成磁盤存儲空間的浪費。可以通過數據庫收縮技術對數…

libvirt vnc花屏_centos6.5下VNC花屏解決方法

問題描述1、FusionCompute平臺搭建完成后,創建基于RHEL6.5 64bit版本的虛擬機,完成虛擬機初始安裝后,VNC界面出現花屏,無法登入Redhat桌面系統2、在創建虛擬機時,系統安裝向導配置了網絡,在花屏界面下可以通…

enum操作--獲取枚舉里的最大值

一個應用系統,如果程序里沒有任何enum的使用,我認為它的可讀性是有待商榷的。 求枚舉里的最大/最小枚舉值, 其實是對Array進行操作: enum EnumTest{ddd 2,eee} var arr1 Enum.GetValues(typeof(EnumTest)); //返回值是一個Array…

呂梁離石學校計算機專業在哪里,山西呂梁計算機大專學校有哪些太重技校告訴您...

山西呂梁計算機大專學校有哪些太重技校告訴您。選擇專業的***關鍵的因素是你自身的興趣,其他只能參考,如果你能準確的知道自己的興趣所在,未來的職業所選,那么只需要一招就可以吃遍天。相信我,一生為自己感興趣的事情奮…

網絡安全:六種常見的網絡攻擊手段

??作者主頁:IT技術分享社區 ??作者簡介:大家好,我是IT技術分享社區的博主,從事C#、Java開發九年,對數據庫、C#、Java、前端、運維、電腦技巧等經驗豐富。 ??個人榮譽: 數據庫領域優質創作者🏆&#x…