AutoLoadCache高效的緩存管理解決方案
現(xiàn)在使用的緩存技術(shù)很多,比如Redis、 Memcache 、 EhCache等,甚至還有使用ConcurrentHashMap 或 HashTable 來(lái)實(shí)現(xiàn)緩存。但在緩存的使用上,每個(gè)人都有自己的實(shí)現(xiàn)方式,大部分是直接與業(yè)務(wù)代碼綁定,隨著業(yè)務(wù)的變化,要更換緩存方案時(shí),非常麻煩。接下來(lái)我們就使用AOP + Annotation 來(lái)解決這個(gè)問(wèn)題,同時(shí)使用自動(dòng)加載機(jī)制 來(lái)實(shí)現(xiàn)數(shù)據(jù)“常駐內(nèi)存”。
設(shè)計(jì)思想及原理
在infoq 發(fā)表的文章《面對(duì)緩存,有哪些問(wèn)題需要思考?》
《再談緩存的穿透、數(shù)據(jù)一致性和最終一致性問(wèn)題》
使用方法
注解(Annotation)說(shuō)明
分布式鎖支持
表達(dá)式的應(yīng)用
緩存刪除
Magic模式
注意事項(xiàng)
與Spring Cache的區(qū)別
最佳實(shí)戰(zhàn)
autoload-cache-spring-boot-starter 推薦使用這個(gè),test目錄中也有可運(yùn)行例子。
源碼閱讀
已經(jīng)實(shí)現(xiàn)基于aspectj 的AOP,代碼在com.jarvis.cache.aop.aspectj.AspectjAopInterceptor。想通過(guò)閱讀代碼了解詳細(xì)細(xì)節(jié),可以以此為入口。
注意:有些類get, set, hashCode(), toString() equals()等方法是使用 lombok 自動(dòng)生成的,所以使用Eclipse 和 IntelliJ IDEA 時(shí),需要先安裝lombok。
更新日志
QQ群:429274886
評(píng)論
圖片
表情
