Shiro緩存機制(代碼)
緩存簡介
緩存,我的理解是:讓數據更接近于使用者;工作機制是:先從緩存中讀取數據,如果沒有再從慢速設備上讀取實際數據(數據也會存入緩存);緩存什么:那些經常讀取且不經常修改的數據/那些昂貴(CPU/IO)的且對于相同的請求有相同的計算結果的數據。如CPU--L1/L2--內存--磁盤就是一個典型的例子,CPU需要數據時先從L1/L2中讀取,如果沒有到內存中找,如果還沒有會到磁盤上找。還有如用過Maven的朋友都應該知道,我們找依賴的時候,先從本機倉庫找,再從本地服務器倉庫找,最后到遠程倉庫服務器找;還有如京東的物流為什么那么快?他們在各個地都有分倉庫,如果該倉庫有貨物那么送貨的速度是非常快的。
緩存命中率
即從緩存中讀取數據的次數 與 總讀取次數的比率,命中率越高越好:
命中率 = 從緩存中讀取次數 / (總讀取次數[從緩存中讀取次數?+ 從慢速設備上讀取的次數])
Miss率 = 沒有從緩存中讀取的次數?/ (總讀取次數[從緩存中讀取次數?+ 從慢速設備上讀取的次數])
這是一個非常重要的監控指標,如果做緩存一定要健康這個指標來看緩存是否工作良好;