Google Guava Cache 示列
来源:互联网 发布:博悦娱乐网络检测 编辑:程序博客网 时间:2024/05/22 11:47
google guava cache
引用maven依赖
<!-- https://mvnrepository.com/artifact/com.google.guava/guava --><dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>18.0</version></dependency>
java代码
import com.google.common.cache.CacheBuilder;import com.google.common.cache.CacheLoader;import com.google.common.cache.LoadingCache;import java.util.concurrent.ExecutionException;import java.util.concurrent.TimeUnit;/** * Created by zhengyong on 16/10/9. */public class GuavaCacheTest { private static LoadingCache<String, String> graphs = null; public static void main(String[] args) { loadDataToCache(); // 第一次从数据源获取,并缓存 String value1 = getValue("mykey"); // 第二次从缓存获取 String value2 = getValue("mykey"); // 过期重新从数据源加载进缓存 try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } String value3 = getValue("mykey"); String value4 = getValue("mykey"); String value5 = getValue("mykey2"); String value6 = getValue("mykey2"); } /** * 根据key获取值 * * @param key 查询条件key * @return 返回value值 */ private static String getValue(String key) { String resultVal = null; try { resultVal = graphs.get(key); } catch (ExecutionException e) { e.printStackTrace(); } System.out.println(String.format("get key=%s return value=%s", key, resultVal)); return resultVal; } /** * 声明加载数据源方式 */ private static void loadDataToCache() { graphs = CacheBuilder.newBuilder().maximumSize(1000).expireAfterWrite(10, TimeUnit.MILLISECONDS).build(new CacheLoader<String, String>() { public String load(String key) { // 这里是key根据实际去取值的方法 System.out.println(String.format("load '%s' from database...", key)); return "value_" + key; } }); }}
运行结果
load 'mykey' from database...get key=mykey return value=value_mykeyget key=mykey return value=value_mykeyload 'mykey' from database...get key=mykey return value=value_mykeyget key=mykey return value=value_mykeyload 'mykey2' from database...get key=mykey2 return value=value_mykey2get key=mykey2 return value=value_mykey2
0 0
- Google Guava Cache 示列
- google guava Joiner 示列
- google guava cache 处理
- Google Guava之--cache
- Google Guava之--cache
- Google Guava Cache
- google Guava Cache使用
- Google的Guava cache 应用
- Google Guava之--cache 使用
- Google guava cache使用样例
- Google Guava Cache实例与分析
- Google Guava之cache参数详解
- Google Guava Cache--localcache本地缓存实例
- guava cache
- Guava cache
- Guava-cache
- Guava Cache
- guava cache
- webstorm快捷键大全
- WebPack入门
- 图解HTTP读书笔记(四)
- Android知识架构 · 电话面试 · Android线程和进程以及安全问题
- 《Android开发艺术探索》学习笔记
- Google Guava Cache 示列
- 图解HTTP读书笔记(五)
- 浮点数字转为大写人民币读法---来自《疯狂Java讲义》第四章的数组应用
- node.js的学习历程九Cookie和Session的初步认识和理解
- LeetCode 4. Median of Two Sorted Arrays
- 图解HTTP读书笔记(六)
- [1.5] RDD经典Action类算子实战解读
- Leetcode #399 Evaluate Divisions
- 第三周项目4——顺序表应用1