一、開頭 java
有些數據須要去網絡上加載,但不能每次都加載,因此此次通常會緩存到本地。緩存到本地的介質有不少。能夠使文件,或者本地數據庫。咱們此次的是緩存到內存。 git
二、使用對象緩存,便可以緩存對象。 github
Cache<String, Object> cache = AnCacheUtils.getObjectMemoryCache(); cache.put("xuan", "你好,我被緩存了");
上面就是緩存了一個字符串。AnCacheUtils.getObjectMemoryCache()取到的是一個默認的緩存對象。最大限制默認20個。使用LRU緩存算法。 算法
取緩存就更簡單了。以下: 數據庫
Cache<String, Object> cache = AnCacheUtils.getObjectMemoryCache(); String cacheStr = (String)cache.get("xuan");cacheStr取到的就是最初存放的那個串。固然,咱們還複寫了一個put方法,用來支持緩存過時。使用以下:
Cache<String, Object> cache = AnCacheUtils.getObjectMemoryCache(); Date currentTime = new Date(); cache.put("xuan", "你好", currentTime.getTime() + 2000);// 過時2S ...中間讓時間超過2S String cacheStr = (String)cache.get("xuan");如你所想,這裏的cacheStr取到的是null,由於緩存過時了,須要從新加載。
三、bitmap緩存使用。若是要緩存的是bitmap圖片,雖然也能用上面的對象緩存。可是最好用下面專門爲bitmap定製的緩存。 緩存
Cache<String, Object> cache = AnCacheUtils.getBitmapMemoryCache(); cache.put("anan", bitmap); ... Bitmap cacheBitmap = cache.get("anan");這默認bitmap緩存大小3M。想必你也想到了吧,爲何要把bitmap緩存和對象緩存分開。對象內存容量很差統計,因此用個來計算。而bitmap的特殊性,若是用個數來限制,很容易出現OOM。因此用他的佔用內存來作限制。
四、刷新緩存和關閉緩存 網絡
Cache<String, Object> cache = AnCacheUtils.getObjectMemoryCache(); cache.removeAll(); ...想要關閉默認緩存能夠以下 AnCacheUtils.closeObjectCache();
五、咱們還能夠自定義設置默認緩存限制。以對象緩存爲例子。 app
AnCacheUtils.configObjectCacheSize(30); Cache<String, Object> cache = AnCacheUtils.getObjectMemoryCache();要注意的是,一旦重新限制緩存限制。那麼以前的緩存都會清空。這種操做最好在程序初始化的時候設置,而後以後就保持不變了。
六、總結 spa
其實這個緩存用法仍是比較簡單的,能夠當作一個map,緩存的時候put一下,要用緩存的時候get一下,就能夠了。 code
源碼在github上有:https://github.com/bigapple520520/bigapple