注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

小葫芦君(汉斯的博客)

博客迁移到新博客:https://blog.ssxingshou.com

 
 
 

日志

 
 
关于我

小小葫芦商城,为您提供高品质的商品,一流的产品,一流的包装服务,一流的物流服务,放心购买

网易考拉推荐

Guava Cache  

2013-07-10 09:07:42|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
最近在研究本地cache,在java语言的话,使用哪款缓存比较好,比较了ehcache和guava cache,发现google的lib还是算法非常好的。简单缓存使用ConcurrentHashMap本来就是传统,而Guava cache在Map的基础上,又玩出很多新花样来,主要包括下面的几点:
1、原子的内容加载,当Key在Cache中不存在时,会回调Loader函数,如果有其他并发的对该Key的请求会等待Loader函数而不是重复加载。
2、maximum 数量限制,超出时用LRU(least-recently-used)算法清除。
3、超时限制,设置max idle time 或 max live time,在每次取元素时都会做超时检查。
4、Key是weak reference, Value是weak 或者 soft reference,真的内存不足时,会被GC掉,慎用

下面举个示例:

LoadingCache<Long, User> cache = CacheBuilder.newBuilder().maximumSize(100)
            .expireAfterAccess(5, TimeUnit.SECONDS).build(new CacheLoader<Long, User>() {
                @Override
                public User load(Long key) throws Exception {
                    return accountManager.getUser(key);
                }
            });

  评论这张
 
阅读(1944)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017