程序內快取分析

2022-09-05 19:27:08 字數 710 閱讀 4290

1. 除了常見的redis/memcache等程序外快取服務,快取還有一種常見的玩法,程序內快取,將一些資料快取在站點,或者服務的程序內,這就是程序內快取。

2. 程序內快取的實現載體,最簡單的,可以是乙個帶鎖的map。又或者,可以使用第三方庫,例如leveldb

3.與程序外快取相比(例如redis/memcache),資料讀取不再需要訪問後端,例如資料庫,省去了網路開銷,所以一來節省了內網頻寬,二來響應時延會更低

4.同樣是多節點統一儲存,容易帶來資料不一致的問題

總結:情況一,唯讀資料,可以考慮在程序啟動時載入到記憶體。

畫外音:此時也可以把資料載入到redis / memcache,程序外快取服務也能解決這類問題。

情況二,極其高併發的,如果透傳後端壓力極大的場景,可以考慮使用程序內快取。

例如,秒殺業務,併發量極高,需要站點層擋住流量,可以使用記憶體快取。

情況三,一定程度上允許資料不一致業務。

例如,有一些計數場景,運營場景,頁面對資料一致性要求較低,可以考慮使用程序內頁面快取。

末了,再次強調,程序內快取的適用場景並不如redis/memcache廣泛,不要為了炫技而使用。

更多的時候,還是老老實實使用redis/mc吧。

程序內快取,究竟怎麼玩?

快取,可以分為 程序內快取,快取服務。文章介紹了 1 什麼是程序內快取 2 程序內快取的優缺點 3 程序內快取儲存一致性的3種方案 4 到底什麼時候用程序內快取 除了常見的redis memcache等程序外快取服務,快取還有一種常見的玩法,程序內快取。什麼是程序內快取?答 將一些資料快取在站點,或...

成為架構師3 14 快取 程序內快取該怎麼玩

程序內快取的缺陷和解決方法 程序內快取的適用場景 什麼是程序內快取 例如 帶鎖的map level級別的db 具有的優勢 與沒有快取的比較 有了程序快取可以加速資料訪問,不用查詢資料庫 與快取集群比較 節省內網頻寬 時延更低 程序內快取的缺陷和解決方法 最嚴重的問題 快取一致性問題 資料的冗餘必然造...

程序內和程序外Session

三種 session 1.inproc 程序內 asp.net 預設就是這種 優點 速度快 缺點 但記憶體小,儲存有限,易爆滿導致重啟資料丟失 程序外 可以在 iis或 aspnet 服務意外關閉時繼續保持狀態,注意此時儲存到 session 中的物件必須支援序列化 2.stateserver 使用...