1. 程式人生 > >分散式本地快取(JVM快取)

分散式本地快取(JVM快取)

適用本地(JVM)快取的場景:

1、對效能有非常高的要求。

2、不經常變化。

3、佔用記憶體不大。

4、有訪問整個集合的需求。

 

需要特別注意的地方:

1、如果是快取查不到,再查DB。切記一定要加上鎖,不然如果多個執行緒同時去查快取,然後查不到,然後又同時去查DB,執行緒足夠多,有可能出現穿透DB的情況。

2、如果某個節點存在多個例項(叢集),那麼每個例項中的本地快取有可能出現不一致(每個快取重新整理的時間點不可能完全一致)。如果是公共的快取,比如庫存等,應該放到redis中。

3、每個例項刷快取的執行緒,儘量是增量刷(有改動的行刷進記憶體中)。

4、如果快取有可能出現多個執行緒同時操作,選擇執行緒安全且高效的集合,比如ConcurrentHashMap,並預估可能存入的資料量,初始容量設定成2的n次方(原因請看HashMap原理的隨筆)。