快取推進策略

2021-08-17 17:38:03 字數 1144 閱讀 7264

目的

方法平均執行時間監控

初步方案:dao層,註解aop統計到記憶體,定時持久化到資料庫

方法重複率監控

初步方案:與防重複呼叫註解類似,按方法 + 引數在一定時間段內重複做統計;dao層,註解aop統計到記憶體,定時持久化到資料庫

初步選型 spring cache

spring cache特點:

spring cache是基於註解的快取技術,具備相當的靈活性,不僅能夠使用 spel(spring expression language)來定義快取的 key 和各種 condition,還提供開箱即用的快取臨時儲存方案,也支援和主流的快取方式:例如 ehcache、redis等整合。

關於多級快取和命中率統計

spring cache實現的整合方案都是一級快取,也不支援命中率統計,可通過cache擴充套件介面實現(命中率統計有必要做)

主要註解

應用例項

當方法執行成功時,把操作結果加入快取

@override

@cacheable(cachenames = "default", unless = "#result.status.equals(t(com.ejlerp.common.vo.invokeresult).failed)")

public invokeresultpushinfotoerp(long tenantid, long vendortenantid) ", result.getresponsemessage());

return

new invokeresult(invokeresult.failed, result.getresponsemessage());

} else else

}} else

} catch (exception e) ", e.getmessage());

return

new invokeresult(invokeresult.failed, e.getmessage());

}}

快取實踐

統一快取層 + 快取控制 + 自定義快取

試點擊擇

通過監控資料選擇平均執行時間長,且方法重複率高的方法進行快取試點

持續監控快取命中率和方法重複率,並總結快取場景,迭代快取介面

HTTP 快取策略

瀏覽器一般快取 css js等靜態檔案,因為這些檔案的更新頻率相對來說比較低,合理利用瀏覽器的快取對 的效能提公升有很大幫助。http快取分為兩部分,分別是本地快取和快取協商,當本地快取不生效時會啟用快取協商。http快取主要由http協議的頭 header 資訊來制定。本地快取 本地快取是指瀏覽器...

LRU快取策略

為最近最少使用 lru 快取策略設計乙個資料結構,它應該支援以下操作 獲取資料 get 和寫入資料 set 獲取資料get key 如果快取中存在key,則獲取其資料值 通常是正數 否則返回 1。寫入資料set key,value 如果key還沒有在快取中,則寫入其資料值。當快取達到上限,它應該在寫...

HTTP快取策略

瀏覽器一般快取 css js等靜態檔案,因為這些檔案的更新頻率相對來說比較低,合理利用瀏覽器的快取對 的效能提公升有很大幫助。http快取分為兩部分,分別是本地快取和快取協商,當本地快取不生效時會啟用快取協商。http快取主要由http協議的頭 header 資訊來制定。本地快取是指當瀏覽器請求資源...