緩存管理方案 AutoLoadCache 3.0 發(fā)布,重新設(shè)計批量刪除緩存方案
2016-03-01 16:22:04 來源: qiujiayu 評論:0 點擊:
3 0 此版本做了大調(diào)整,有些功能已經(jīng)不兼容老版本 不再使用默認緩存Key,所有的緩存都必須自定義緩存Key;原來使用$hash()來調(diào)用hash函數(shù),改為使用 hash()進行調(diào)用。 之前版本中使用通配符(?和*)進行批量刪除緩存,這種方法性能比較差,需要多次與Redis進行交互,而且隨著緩存Key的數(shù)量的增加,性能也會下降,如果有多個Reids實例的話,還需要遍歷每個
3.0 此版本做了大調(diào)整,有些功能已經(jīng)不兼容老版本
不再使用默認緩存Key,所有的緩存都必須自定義緩存Key;原來使用$hash()來調(diào)用hash函數(shù),改為使用#hash()進行調(diào)用。
之前版本中使用通配符(?和*)進行批量刪除緩存,這種方法性能比較差,需要多次與Redis進行交互,而且隨著緩存Key的數(shù)量的增加,性能也會下降,如果有多個Reids實例的話,還需要遍歷每個實例。為了解決這個問題,我們使用hash表保存需要批量刪除的緩存,要批量刪除緩存時,只要把hash表刪除就可以了。
如果在開發(fā)階段不想使用Redis來緩存數(shù)據(jù),可以使用com.jarvis.cache.map.CachePointCut,把數(shù)據(jù)緩存到本地內(nèi)存中,雖然它不支持使用通配符進行批量刪除緩存,但同樣支持使用hash表進行批量刪除緩存。所以轉(zhuǎn)用Redis緩存數(shù)據(jù)是沒有任務(wù)問題的。
如果需要在MyBatis Mapper中使用@Cache和@CacheDelete,則需要使用com.jarvis.cache.mybatis.CachePointCutProxy 來處理。
詳細內(nèi)容,請到github上查閱:AutoLoadCache
不再使用默認緩存Key,所有的緩存都必須自定義緩存Key;原來使用$hash()來調(diào)用hash函數(shù),改為使用#hash()進行調(diào)用。
之前版本中使用通配符(?和*)進行批量刪除緩存,這種方法性能比較差,需要多次與Redis進行交互,而且隨著緩存Key的數(shù)量的增加,性能也會下降,如果有多個Reids實例的話,還需要遍歷每個實例。為了解決這個問題,我們使用hash表保存需要批量刪除的緩存,要批量刪除緩存時,只要把hash表刪除就可以了。
如果在開發(fā)階段不想使用Redis來緩存數(shù)據(jù),可以使用com.jarvis.cache.map.CachePointCut,把數(shù)據(jù)緩存到本地內(nèi)存中,雖然它不支持使用通配符進行批量刪除緩存,但同樣支持使用hash表進行批量刪除緩存。所以轉(zhuǎn)用Redis緩存數(shù)據(jù)是沒有任務(wù)問題的。
如果需要在MyBatis Mapper中使用@Cache和@CacheDelete,則需要使用com.jarvis.cache.mybatis.CachePointCutProxy 來處理。
詳細內(nèi)容,請到github上查閱:AutoLoadCache
相關(guān)熱詞搜索:AutoLoadCache Spring redis cache aop opensource 開源軟件
上一篇:Vim 新手節(jié)省時間的 10 多個小技巧
下一篇:如何用70行Java代碼實現(xiàn)深度神經(jīng)網(wǎng)絡(luò)算法
分享到:
收藏
