localcache本地缓存

guava的localche 方法如下

google的guava库中有实现了localcache的现成方法,可以在应用中快速构建本地缓存。

在缓存中,最为重要的失效策略和唯一key的确定;

基于时间的移除
      guava提供了两个基于时间移除的方法
      expireAfterAccess(long, TimeUnit)  这个方法是根据某个键值对最后一次访问之后多少时间后移除;
      expireAfterWrite(long, TimeUnit)    这个方法是根据某个键值对被创建或值被替换后多少时间移除;

Cache cache= CacheBuilder.newBuilder().expireAfterAccess(5, TimeUnit.MINUTES).build();


缓存的常用使用场景有:

(1)在高并发的数据库访问时,为了抗住数据库并发连接压力,将数据缓存起来,当有请求过来,直接返回数据;

(2)当应用综的数据,更新周期较长,而且每次都查数据库的情况下,可以采用周期更新数据,从而有效减少数据库无效的访问,保证效率;



插入

public  void  putAll(Map extends  K, ?  extends  V> m) {
   for  (Entry extends  K, ?  extends  V> entry : m.entrySet()) {
     put(entry.getKey(), entry.getValue());
   }
}


方法返回所有的值,类型是一个不可变的集合,



public  ImmutableMap getAllPresent(Iterable keys) {
   Map result = Maps.newLinkedHashMap();
   for  (Object key : keys) {
     if  (!result.containsKey(key)) {
       @SuppressWarnings ( "unchecked" )
       K castKey = (K) key;
       V value = getIfPresent(key);
       if  (value !=  null ) {
         result.put(castKey, value);
       }
     }
   }
   return  ImmutableMap.copyOf(result);
}

你可能感兴趣的:(Guava)