官方文档 https://code.google.com/p/guava-libraries/wiki/CachesExplained
LoadingCache
这种用法,我个人用的比较多.不多说,直接看代码(例子来自官方文档).
LoadingCache<Key, Graph> graphs = CacheBuilder.newBuilder() .maximumSize(1000) //最多1000个 .expireAfterWrite(10, TimeUnit.MINUTES)//写入以后缓存10min. .removalListener(MY_LISTENER)//listenner设置 .build( new CacheLoader<Key, Graph>() { //最后load的方法. public Graph load(Key key) throws AnyException { return createExpensiveGraph(key); } });
上面的代码很容易理解..在使用的时候,就非常简单了.只需要
graphs.getUnchecked(key)
还是很简单的.
但是这里有一个要求,load的返回值不允许为null..但是我们很多业务场景经常会遇到null的返回值.解决的方法就是通过optional .具体看实际的代码
/** * 抽奖ID对应的抽奖信息cache */ private LoadingCache<Long,Optional<LotteryAwardMO>> idLotteryAwardCache; private void init() { idLotteryAwardCache = CacheBuilder.newBuilder().maximumSize(100).expireAfterWrite(5, TimeUnit.SECONDS).build(new CacheLoader<Long, Optional<LotteryAwardMO>>() { @Override public Optional<LotteryAwardMO> load(Long key) throws Exception { LotteryAwardMsgBO lotteryAwardMsgBO = lotteryAwardMsgManager.get(key); return Optional.fromNullable(toLotteryAwardMO(lotteryAwardMsgBO)); } }); }
用法也很简单
idLotteryAwardCache.getUnchecked(awardId).orNull()
CallBack
callback的用法,等我在实际中用到了,再写吧
相关推荐
总结来说,`Guava-Cache-Demo` 展示了如何利用 Guava Cache 实现高效的数据缓存,通过将 Google Books API 的调用结果缓存起来,减少了不必要的网络延迟,提高了应用程序的响应速度。通过定制缓存的过期策略、最大...
2. **缓存机制**:Guava的LoadingCache接口可以方便地创建自定义缓存策略,这对于频繁访问的数据,可以减少重复计算和提高响应速度。 3. **并发工具**:Guava提供了如CountDownLatch、CyclicBarrier等并发控制工具...
LoadingCache, String> cache = CacheBuilder.newBuilder() .maximumSize(1000) .expireAfterWrite(10, TimeUnit.MINUTES) .build(new CacheLoader, String>() { public String load(String key) throws ...
├─Google Guava 第01讲-Joiner详细介绍以及和Java8Collector对比.wmv ├─Google Guava 第02讲-Guava Splitter详细讲解以及实战练习...├─Google Guava 第34讲-Guava Cache之RecordStats,CacheBuilderSpec详解.wmv
总结来说,"spring-cache-4.2.xsd.zip"压缩包包含的关键知识点是Spring Cache的XML Schema定义,它对于理解和配置Spring Cache至关重要。这个压缩包提供了一种离线方式来查看和使用Schema文件,有利于提高开发效率,...
Guava Cache是Google Guava库中的一...总结,Guava Cache是一个强大的本地缓存解决方案,提供了丰富的配置选项和便捷的操作接口。通过学习和熟练使用Guava Cache,开发者可以更好地优化应用程序的性能,提升用户体验。
总结,Spring Boot结合Guava Cache能有效提升Web应用的性能,通过合理配置和策略优化,可以应对各种复杂场景。在实际开发中,我们需要根据业务需求,灵活运用这些工具和技巧,构建出高效、稳定的缓存系统。
总结,Guava Cache是Java开发中实现本地缓存的一个强大工具,它的灵活性和丰富的特性使得缓存管理变得高效且易于维护。在实际项目中,合理地利用Guava Cache,可以显著提升系统性能,减少不必要的I/O操作。同时,...
然而,当我们关注"guava-cache-overflow-extension.zip"时,话题转向了Google的Guava库,这是一个广泛使用的Java库,提供了许多实用工具类和集合框架的增强。在这个压缩包中,我们找到了一个开源项目,名为“Guava ...
Guava的Cache模块提供了一种高效的本地缓存实现,可以自动管理缓存项的过期和容量限制。开发者可以通过简单的方法调用实现缓存的创建、加载和淘汰策略,大大提高了应用的性能。 三、并发编程支持 Guava提供了许多...
这里可以利用Guava提供的`LoadingCache`来实现: ```java import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; import ...
总结来看,Guava库通过提供各种实用工具类和接口,极大地丰富了Java语言的功能,使得Java开发者能够更专注于业务逻辑的实现,而不是重复造轮子。因此,对于Java开发者而言,掌握Guava库的使用是一项非常有价值的技能...
相比于其他的Java缓存库,如Ehcache、Guava Cache,AutoLoadCache更专注于简化开发者的工作,提供更丰富的特性以适应复杂的应用场景。尽管如此,选择哪种缓存库取决于具体项目的需求,例如对内存使用、分布式支持、...
Guava的Cache提供了内存管理和数据缓存的解决方案,支持过期策略、最大容量限制等功能。此外,Guava的Persister接口允许开发者自定义数据持久化策略,方便在内存和持久存储间切换。 总结起来,Guava 22.0是一个功能...
而工具部分可能涉及使用缓存的软件或库,如Java的Guava Cache、Spring Cache等,以及如何配置和优化它们。 压缩包内的“缓存.docx”文件很可能是对缓存技术的详细讲解,可能包含以下知识点: 1. **缓存的基本概念*...
它提供了一种统一的方式来管理和使用各种缓存系统,如EhCache、Hazelcast、Guava和Redis等。在这个示例中,我们将专注于Spring与Redis集成进行缓存管理。 **Spring Cache的原理** Spring Cache的核心是通过`@...
8. **可扩展性**:J2Cache允许用户自定义缓存实现,如基于Guava Cache、Ehcache、 Hazelcast等,以满足特定需求。 9. **并发控制**:通过线程安全的设计,保证了在多线程环境下的正确性和一致性。 10. **序列化**...
为了指定缓存的存储介质,Spring Cache 支持多种缓存 provider,如 Ehcache、Guava Cache、JCache (JSR-107) 等。在配置类中,我们可以通过 `CacheManager` 的实现类来选择和配置缓存 provider。 例如,如果我们...
2. **Guava Cache**:Google的Guava库提供了一个强大的`Cache`接口,支持自动过期、弱引用、软引用等高级特性。通过`LoadingCache`,我们可以配置一个自动加载新值到缓存中的功能,当缓存项不存在时,会调用预定义的...
Guava的LoadingCache是强大的缓存实现,支持自动加载、过期策略和大小限制。它可以极大地提高应用程序的响应速度,减少对底层资源的访问。 **I/O工具** Guava提供了Files、ByteStreams、CharStreams和Charsets等...