`
xpchenfrank
  • 浏览: 31172 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

Guava Cache 的清空,刷新及统计功能

阅读更多

这篇文章是关于guava cache的最后一篇文章。

 

主要介绍guava cache的清空,刷新和统计的功能。

 

 

缓存数据的清空

 

      guava没有提供自动触发清空缓存数据的功能,而是提供了一种手工调用的方式,使用者需要通过Cache.cleanUp()的方式来清空缓存。

 

      所以一般可以有两种选择,一种是通过某个请求来触发清空动作,这种相当于按需清空,另一种则是通过定时任务,亦成为调度程序来清空,这种相当于与按时清空

 

缓存数据的刷新

 

      guava没有提供类似refreshall的方法刷新缓存中的所有值,而只是提供了 LoadingCache.refresh(K)方法,用于刷新某个键值对,这里有趣的是刷新动作是异步的,也就是在值被彻底刷新之前,如果有人取这个key的值,返回的还是没有刷新的值。

 

      如果你希望定义自己的刷新行为,可以重写 CacheLoader.reload(K, V)方法

 

LoadingCache<Key, Graph> graphs = CacheBuilder.newBuilder()
       .maximumSize(1000)
       .refreshAfterWrite(1, TimeUnit.MINUTES)
       .build(
           new CacheLoader<Key, Graph>() {
             public Graph load(Key key) { // no checked exception
               return getGraphFromDatabase(key);
             }

             public ListenableFuture<Graph> reload(final Key key, Graph prevGraph) {
               if (neverNeedsRefresh(key)) {
                 return Futures.immediateFuture(prevGraph);
               } else {
                 // asynchronous!
                 return ListenableFutureTask.create(new Callable<Graph>() {
                   public Graph call() {
                     return getGraphFromDatabase(key);
                   }
                 });
               }
             }
           });

 

缓存数据统计

 

      可以通过 CacheBuilder.recordStats()方法打开统计, Cache.stats()方法会返回一个CacheStats对象,里面有缓存条目访问率等数据,如果你的缓存需要做一些调优,可以参考这里的数据。

1
1
分享到:
评论
1 楼 vking_wang 2014-11-20  
清空cache应该用Cache.invalidateAll()

相关推荐

    使用google guava 实现定时缓存功能

    本篇文章将详细探讨如何利用Guava库实现定时缓存功能,以提高应用的性能和效率。 首先,Guava的Cache组件是其核心特性之一,它提供了一种高效、自动化的缓存机制。定时缓存功能允许我们存储计算结果或从远程服务...

    Guava-Cache本地缓存案例代码

    在`guava-cache-demo`项目中,你可以找到以上各种功能的具体实现,通过运行这些示例代码,可以更深入地理解Guava Cache的用法。这个案例是学习和理解Guava Cache操作的一个良好起点,可以帮助开发者在实际项目中有效...

    guava-cache.rar

    Guava Cache的这些特性和功能使得它成为Java开发中本地缓存的首选工具,尤其是在配合Redis等分布式缓存使用时,能够更好地平衡系统性能和资源利用率。了解和熟练掌握Guava Cache的使用,将有助于构建更加高效、健壮...

    Go-Localcaching-GuavaCache在Go中的部分的实现

    Guava Cache是Java领域广泛使用的高效缓存解决方案,但Go语言本身并未直接提供与Guava Cache类似的功能。然而,开发者可以借鉴Guava Cache的设计理念,使用Go的标准库或者其他第三方库来实现类似的本地缓存机制。`...

    Springboot整合GuavaCache缓存过程解析

    SpringBoot整合GuavaCache缓存过程解析 SpringBoot是一款流行的Java框架,提供了许多便捷的功能来简化开发过程。其中,缓存机制是SpringBoot中的一个重要组件,可以帮助提高应用程序的性能和响应速度。GuavaCache是...

    详解Guava Cache本地缓存在Spring Boot应用中的实践

    Guava Cache是一个功能强大且灵活的缓存解决方案,可以与Spring Boot应用集成,以提高程序的性能。在实际应用中,需要根据实际情况选择合适的缓存策略,以提高程序的性能。 知识点: 1. Guava Cache是一个全内存的...

    SpringBoot加入Guava Cache实现本地缓存代码实例

    SpringBoot 中 Guava Cache 的应用 在本文中,我们将介绍如何在 SpringBoot 项目中使用 Guava Cache 实现本地缓存。Guava Cache 是一个高性能的缓存框架,由 Google 开发维护。它提供了一个灵活的缓存机制,可以...

    Guava-CacheDemo.rar

    Guava Cache是Google Guava库中的一个功能强大的本地缓存实现,它为Java开发者提供了高效、易用的缓存解决方案。Guava Cache的设计目标是为了帮助应用程序在内存中存储经常访问的数据,以减少对远程服务或者数据库的...

    第七章 企业项目开发--本地缓存guava cache1

    【标题】:第七章 企业项目开发--本地缓存Guava Cache1 【描述】:在企业级项目开发中,缓存技术起着至关重要的作用,数据库设计往往也会考虑缓存策略。本地缓存和分布式缓存是常见的两种缓存方式,其中Guava Cache...

    springboot使用GuavaCache做简单缓存处理的方法

    SpringBoot 使用 GuavaCache 实现简单缓存处理 在本篇文章中,我们将介绍如何使用 GuavaCache 在 SpringBoot 项目中实现简单的缓存处理。缓存机制可以减少对外部服务的查询请求,从而提高应用程序的性能。 问题...

    springbt_guava_cache.7z

    2. Guava Cache:Google的Guava库中的Cache模块,是一个强大的本地缓存解决方案,支持线程安全、容量限制、自动过期等功能,适用于需要高性能缓存场景。 二、集成Guava Cache 在Spring Boot项目中,我们需要以下...

    Guava-Cache-Demo:演示如何使用 Guava 缓存

    此外,Guava Cache 还提供了一些统计信息,如命中率、加载次数等,可以通过 `Cache.stats()` 获取。这对于监控和调整缓存策略非常有用。 总结来说,`Guava-Cache-Demo` 展示了如何利用 Guava Cache 实现高效的数据...

    Java内存缓存工具Guava LoadingCache使用解析

    Java内存缓存工具Guava LoadingCache使用解析 Java内存缓存工具Guava LoadingCache是一个非常强大的缓存工具,广泛应用于各种Java项目中。Guava Cache是单个应用运行时的本地缓存,用于将数据缓存到JVM内存中,提高...

    如何基于LoadingCache实现Java本地缓存

    Guava Cache 提供了统计功能,可以记录缓存项的命中率、缓存项数量、缓存池大小等信息。 八、封装的工具类 可以封装一个工具类,提供缓存操作的接口,例如 CacheManager。CacheManager 可以提供缓存项的存储和获取...

    Mango Cache-Go中的Guava Cache的部分实现。-Golang开发

    Go中的Guava Cache的Mango Cache部分实现。 支持的缓存替换策略:LRU分段LRU(默认)TinyLFU(实验性)TinyLFU实现的灵感源于Ben Manes的Caffeine和Go中的Guava Cache的Mango Cache Partial实现。 支持的缓存替换...

    不加密Google Guava视频教程.txt

    ├─Google Guava 第21讲-实战:手动实现一个EventBus-02快速实现程序功能.wmv ├─Google Guava 第22讲-实战:手动实现一个EventBus-03总结与查缺补漏.wmv ├─Google Guava 第23讲-Guava EventBus源码剖析以及优...

    spring-cache-demo:spring整合guava和redis实现本地和远程缓存

    在这个名为“spring-cache-demo”的项目中,我们看到它整合了Guava Cache和Redis,实现了本地和远程缓存的功能。 首先,让我们来深入理解Spring Cache。Spring Cache允许开发者在不修改业务代码的情况下,通过简单...

    guava-14.0.1.jar

    Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations] ...

    google guava

    Guava的Cache模块是其一大亮点,它提供了一种强大的本地缓存解决方案。开发者可以通过自定义加载函数、过期策略、大小限制等方式来管理缓存。缓存的使用可以显著提高应用程序的性能,减少对远程服务或数据库的访问...

Global site tag (gtag.js) - Google Analytics