緩存是分布式系統中的重要組件,主要解決高並發,大數據場景下,熱點數據訪問的性能問題。提供高性能的數據快速訪問。
這次主要是分享下自己覺得比較通用的一個緩存策略的架構方案,也是比較 容易理解的.歡迎吐槽.
有更牛逼的也歡迎大家說下:
緩存是分布式系統中的重要組件,主要解決高並發,大數據場景下,熱點數據訪問的性能問題。提供高性能的數據快速訪問。
(1) 將數據寫入/讀取速度更快的存儲(設備);
(2) 將數據緩存到離應用最近的位置;
(3) 將數據緩存到離用戶最近的位置。
在分布式系統中,緩存的應用非常廣泛,從部署角度有以下幾個方面的緩存應用。
(1) CDN緩存;
(2) 反向代理緩存;
(3) 分布式Cache;
(4) 本地應用緩存;
常用中間件:Varnish,Ngnix,Squid,Memcache,Redis,Ehcache等;
緩存的內容:文件,數據,對象;
緩存的介質:CPU,內存(本地,分布式),磁盤(本地,分布式)
緩存設計需要解決以下幾個問題:
(1) 緩存什麼?
哪些數據需要緩存:1.熱點數據;2.靜態資源;
(2) 緩存的位置?
CDN,反向代理,分布式緩存服務器,本機(內存,硬盤)
(3) 如何緩存的問題?
1.固定時間:比如指定緩存的時間是30分鐘;
2.相對時間:比如最近10分鐘內沒有訪問的數據;