Guava学习笔记之Cache实例
来源:互联网 发布:淘宝直播快速申请成功 编辑:程序博客网 时间:2024/05/01 14:20
Guava是谷歌的java类库,功能十分强大,下面是本地内存缓存工具类实例,在第一次通过调用get(key)时,会调用load去获取值,当再次调用时,我们发现就直接从缓存中调用了,根据maximumSize设置缓存大小,当大小超过限度的时候,会从缓存中移除最远的数据。实例如下。
Guava cahche实例,通过loadingCache
public class Main { static Map<String, Integer> map = new HashMap<String, Integer>(); public static Integer getValueByKey(String key) { System.out.println("通过key:" + key + "获取值"); return map.get(key); } @Test public void loadingCache() throws ExecutionException { map.put("key1", 1); map.put("key2", 2); map.put("key3", 3); LoadingCache<String, Integer> cahceBuilder = CacheBuilder.newBuilder().maximumSize(2) .build(new CacheLoader<String, Integer>() { @Override public Integer load(String key) throws Exception { return getValueByKey(key); } }); System.out.println(cahceBuilder.get("key1")); System.out.println(cahceBuilder.get("key2")); System.out.println(cahceBuilder.get("key3")); System.out.println(cahceBuilder.get("key1")); System.out.println(cahceBuilder.get("key3")); cahceBuilder.put("key1", 4); System.out.println(cahceBuilder.get("key1")); }}
运行结果:
当然还有另外一种实现方式,使用callable
移除值可以使用下列方法。
cache.invalidate("key1"); cache.invalidateAll();
通过结果可以看出,当重复获得相同key的值时,不会再执行call(),而是从缓冲区读取。
cahceBuilder.refresh("key1");方法可以刷新该key值
CacheLoader.reload(K, V) 生成新的value
CacheBuilder.refreshAfterWrite(long, TimeUnit) 超时后自动刷新cache
0 0
- Guava学习笔记之Cache实例
- Guava学习笔记:Guava cache
- Guava学习笔记:Guava cache
- Guava学习笔记:Guava cache
- Guava学习笔记:Guava cache
- Guava学习笔记:Guava cache
- Guava学习笔记:Guava cache
- Guava学习笔记:Guava cache
- Guava学习笔记:Guava cache
- Guava学习之cache
- 2.Guava学习笔记:Guava cache
- Guava学习笔记【11】:Guava cache
- java Guava cache学习笔记
- Guava学习笔记之Joiner ,Strings,Splitter 工具实例
- ] Guava学习笔记之Joiner ,Strings,Splitter 工具实例
- Guava Cache使用笔记
- Guava Cache使用笔记
- Guava Cache使用笔记
- android webview 播放视频
- 【Tika基础教程之一】Tika基础教程
- C语言(三)
- Quadtrees
- 【solr基础教程之一】Solr相关知识点串讲
- Guava学习笔记之Cache实例
- 【训练计划】ACM算法列表
- Java中实现国际化
- jquery-easyui学习(7)_tree
- Android ScrollView滚动区高度和子LinearLayout的layout_marginTop的关系
- #pragma DATA_ALIGN作用
- erlang ut8处理的一个小技巧
- 总结jsp提交表单到Action类,参数值为空
- 矩阵连乘问题java版