dubbo如何做cache緩存


duubo如何使用cache的?
CacheFilterclass里面有,這個filter既可以在provider也可以在consumer
if (cacheFactory != null && ConfigUtils.isNotEmpty(invoker.getUrl().getMethodParameter(invocation.getMethodName(), Constants.CACHE_KEY))) {
可見只要對方法url加了cache標志,就會使用cache,通過cacheFactory得到幾個cache,重點說下lru的cache

lru-cache繼承自LinkedHashMap,由於這個map沒有線程安全,所以所有操作都加了排他鎖。
既然是cache,為了更快讀取到數據,肯定用hashmap,但是hashmap無法做到lru,為了解決這個問題,就用到了LinkedHashMap,這個map跟hashmap不同的地方就在於,鏈表部分是雙向的,因此對於每次put進來Entry,除了將其保存到哈希表中對應的位置上之外,還會將其插入到雙向鏈表的尾部(有頭尾指針)來保證插入的順序,從而達到lru的作用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM