CacheBuilder作为LoadingCache 与 Cache实例的创建者,具有以下特征:
1、自动载入键值至缓存;
2、当缓存器溢出时,采用最近最少使用原则进行替换。
3、过期规则可基于最后读写时间。
4、设置键值引用级别。
5、元素移出通知。
6、缓存访问统计。
LoadingCache<String, Integer> cache = CacheBuilder.newBuilder()
.maximumSize(10)
.expireAfterWrite(10, TimeUnit.SECONDS)
.build(
new CacheLoader<String, Integer>() {
public Integer load(String key) throws Exception {
return loadKey(key);
}
});
通过recordStats()函数,还可开启缓存的访问统计,通过调用status()方法,返回包含统计信息的CacheStats对象,可以获取缓存的很多统计信息:hitCount(命中成功次数),missCount(命中失败次数),loadSuccessCount(载入成功次数),loadExceptionCount(载入失败次数),totalLoadTime(总载入时间),evictionCount(移除次数),requestCount() (访问次数),hitRate()(命中成功率),missRate()(命中失败率),loadCount()(载入次数)等。
生成LocalManualCache基于builder生成 LocalCache