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<K, V> getAllPresent(Iterable<?> keys) {
   Map<K, V> 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);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值