什么時候需要使用緩存?


緩存不是架構設計的必選項,也不是業務開發中的必要功能點,只有在業務出現性能瓶頸,進行優化性能的時候才需要考慮使用緩存來提升系統性能。也不是所有的業務場景都適合使用緩存,讀多寫少且數據時效要求越低的場景越適合使用緩存,緩存並不是所有性能問題的靈丹妙葯,如果濫用緩存反而會成為毒葯,並且會引入維護緩存的操作成本,使得系統復雜度更高不利於維護。

另外把緩存當做存儲來使用是一件極其致命的做法,這種錯誤的認識,將緩存引入系統的那一刻起就意味着已經讓系統走上了危險的局面,對緩存的使用邊界要有深刻的理解,才能盡可能保證做出引入緩存才是一個正確的決定。

在進行緩存結構設計的時候,需要考慮的點有很多:

1)業務流量量級以及應用規模: 對於低並發低流量的應用而言,引入緩存並不會帶來性能的顯著提升,反而會帶來應用的復雜度以及極高的運維成本。也不是任何數 據都需要使用緩存,比如圖片視頻等文件使用分布式文件系統更合適而不是緩存。 因此,在引入緩存前,需要對當前業務的流量進行評估,在高並發大流量的業務場景中引入緩存相對而言收益會更高;

2)緩存應用的選擇: 緩存應用有很多如Redis、Memcached以及tair等等,針對每一種分布式緩存應用的優缺點以及適用范圍、內存效率、運維成本甚至團隊開發人員的知識結構都需要了解,才能做好技術選型;

3)緩存影響因素的正確評估: 在引入緩存前,需要着重評估value大小、緩存內存空間、峰值QPS、過期時間、緩存命中率、讀寫更新策略、key值分布路由策略、過期策略以及數據一致性方案等等多個因素,要做到心中有數;

4)緩存高可用架構: 分布式緩存要高可用,這也是分布式系統追求的三高指標中的一個,緩存的集群設計,主從同步方案的設計等等,只有緩存足夠可靠,才能服務於業務系統,為業務帶來價值;

5)完善的監控平台: 當緩存投入生產環境后,需要有一套監控系統能夠顯式的觀測緩存系統的運行情況,才能更早的發現問題,同時對於預估不足的非預期熱點數據,也需要熱點發現系統去解決非預期的熱點數據緩存問題。

6)緩存最近原則: 將緩存數據放在離用戶最近的地方,無疑會極大的提升響應的速度,這也是多級緩存設計的核心思想。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM