public static void main(String... args) throws Exception { Cache<String, Integer> cache = Caffeine.newBuilder().build(); Integer age1 = cache.getIfPresent("张三"); System.out.println(age1); //当key不存在时,会立即创建出对象来返回,age2不会为空 Integer age2 = cache.get("张三", k -...
CacheStats stats = cache.stats(); System.out.println("缓存大小: " + cache.estimatedSize()); System.out.println("命中率: " + stats.hitRate()); System.out.println("驱逐次数: " + stats.evictionCount()); 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 观察缓存大小、命中率和驱逐次数,可以帮...
System.out.println("stats.missRate():"+stats.missRate());//未命中率 System.out.println("stats.loadSuccessCount():"+stats.loadSuccessCount());//加载成功的次数 System.out.println("stats.loadFailureCount():"+stats.loadFailureCount());//加载失败的次数,返回null System.out.println("stats.load...
System.out.println("stats.loadFailureCount():"+stats.loadFailureCount());//加载失败的次数,返回null System.out.println("stats.loadFailureRate():"+stats.loadFailureRate());//加载失败的百分比 System.out.println("stats.totalLoadTime():"+stats.totalLoadTime());//总加载时间,单位ns System.out....
TimeUnit.SECONDS.toNanos(EXPIRE_TIME)); System.out.println(cache.getIfPresent("test")); Thread.sleep(2000); System.out.println(cache.getIfPresent("test"));}另外caffeine内部还支持对过期的key进行监听回调功能:/** * 从cache中移除某些key,同时注册移除key的回调监听器 * * @throws Interr...
可用的最新版本是Caffeine 2.6。Caffeine 的用户界面是用 GTK 编写,所以对 Gnome 十分友好,但是它也能安装在任何Linux发行版上。它在Ubuntu上工作良好。Caffeine 是一个新程序,常驻系统托盘区,它能保证你享受视频的时候,阻止显示器进入睡眠状态。
System.out.println("自动填充:"+ key);return18; });Integerage1=cache.getIfPresent("张三"); System.out.println(age1);// key 不存在时 会根据给定的CacheLoader自动装载进去Integerage2=cache.get("张三"); System.out.println(age2); }
System.out.println(user); } Callable方式的回源填充,有个明显的优势就是调用方可以根据自己的场景,灵活的给定不同的回源执行逻辑。但是这样也会带来一个问题,就是如果需要获取缓存的地方太多,会导致每个调用的地方都得指定下对应Callable回源方法,调用起来比较麻烦,且对于需要保证回源逻辑统一的场景管控能力不够强势...
publicstaticvoidmain(String[]args)throwsException{System.out.println("当前主线程:"+Thread.currentThread().getId());Cache<String,String>cache=Caffeine.newBuilder().maximumSize(1).removalListener((key,value,cause)->System.out.println("数据淘汰执行线程:"+Thread.currentThread().getId()+","+key+"被...
System.out.println(age2); }// 输出:// null// k:张三// 18 Cache接口允许显式的去控制缓存的检索,更新和删除。 我们可以通过cache.getIfPresent(key)方法来获取一个key的值,通过cache.put(key, value)方法显示的将数控放入缓存,但是这样子会覆盖缓原来key的数据。更加建议使用cache.get(key,k - > value...