guava cache 創建方式 --- 1

緩存一般分爲cpu緩存、操作系統緩存、本地緩存、分佈式緩存、http緩存和數據庫緩存.而guava cache是全內存的本地緩存。
  你的緩存數據不超過內存(Guava緩存是單個應用中的本地緩存。它不會將數據存儲到文件中,或者外部服務器。如果不適合你,可以考慮一下 Memcached)
 localcache有着極大的性能優勢,單機情況下,適當使用localcache會使程序的效率得到
 很大的提升.但在集羣環境下localcache就存在很多問題了,主要體現在多個jvm之間cache
 的同步問題。

關於併發的問題 詳情見http://www.cnblogs.com/redcreen/archive/2011/02/15/1955248.html

  • 創建方式
    LoadingCache<String,User> u=CacheBuilder.newBuilder()// key,value都是可以指定
    .maximumSize(1000)  // key超過一定數量時,回收最近沒有使用或使用次數比較少的
    .expireAfterWrite(10,TimeUnit.MINUTES)  // 在指定的時間內沒有更新就回收
    .expireAfterAccess(10,TimeUnit.MINUTES) // 沒有讀寫或寫就被回收  
    .weakKeys()/ weakValues()/softValues() //沒有引用到該緩存時就被垃圾回收
    .removalListener(listener) //回收時的監聽器 
    .build(  
      new CacheLoader<String,User>(){  
            Public Userload(String key)throwsAnyException{  
             return createUser(key); //只有在沒有這個key時才調用
       }  
    });
   Cache<String,String> cache = CacheBuilder.newBuilder().maximumSize(1000).build();
   String str = cache.get(“eg”, new Callable<String>(){ //這個回掉方法在找不到key調用
      Public String call() { return1”;}
   });  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章