使用 Guava 进行缓存

2024-01-05

哪些 Guava 类适合线程安全缓存?我使用组合键,它是动态构建的,所以 softKeys() 没有意义,对吧?我在某处看到 ConcurentLinkedHashMap,这是要走的路吗?它已经在最近的版本中了吗?抱歉,提问方式很混乱……

Update

这个问题已经很老了,浏览他的答案可能会浪费时间。长期以来有一个CacheBuilder http://google.github.io/guava/releases/22.0/api/docs/com/google/common/cache/CacheBuilder.html这是要走的路。


版本 10.0 的新 Guava 库引入了Cache https://google.github.io/guava/releases/22.0/api/docs/com/google/common/cache/Cache.html专为缓存设计的接口。

它配备了CacheBuilder https://google.github.io/guava/releases/22.0/api/docs/com/google/common/cache/CacheBuilder.html,这类似于MapMaker https://google.github.io/guava/releases/22.0/api/docs/com/google/common/collect/MapMaker.html以及所有的缓存方法MapMaker将在版本 11 中删除。

文档中的示例:

Cache<Key, Graph> graphs = CacheBuilder.newBuilder()
   .concurrencyLevel(4)
   .weakKeys()
   .maximumSize(10000)
   .expireAfterWrite(10, TimeUnit.MINUTES)
   .build(
       new CacheLoader<Key, Graph>() {
         public Graph load(Key key) throws AnyException {
           return createExpensiveGraph(key);
         }
       });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Guava 进行缓存 的相关文章

  • Java Swing BoxLayout 忽略 AlignmentX

    在下面的代码中 通过调用setAlignmentX with Component LEFT ALIGNMENT我希望在居中的滑块上获得左对齐的标签 由于某种原因 标签也居中 似乎与传递给 setAlignmentX 的值无关 我必须向 se
  • 在 String 值之后打印 int 值

    我有以下示例代码 int pay 80 int bonus 65 System out println pay bonus bonus pay 有人可以向我解释一下为什么我得到以下输出 145 6580 您的代码正在从左到右解释表达式 pa
  • Java 小程序在 Mac 上闪烁

    这个问题很奇怪 问题并非在每个平台上都会发生 我在使用 MacOSX 的 Google Chrome 中出现了这种情况 但在 Safari 中却没有出现这种情况 对于使用 Windows 的朋友来说 在 Google Chrome 上运行得
  • JAXB 继承冲突 - 重新注释子类

    目前我的项目中有这样的环境 public abstract class Foo private List
  • 如何准确判断 double 是否为整数? [复制]

    这个问题在这里已经有答案了 具体来说 在 Java 中 我如何确定double是一个整数 为了澄清 我想知道如何确定 double 实际上不包含任何分数或小数 我主要关心的是浮点数的性质 我想到的方法 以及我通过谷歌找到的方法 基本上遵循以
  • Apache Thrift Java-Javascript 通信

    我正在编写一个基于 Apache Thrift 的 Java 服务器 它将从 Javascript 客户端接收数据 我已经完成了 Java 服务器 但问题是我可以获得 Javascript 客户端的工作示例 我无法找到一个好的示例 构建文档
  • 如何将本机数据库运算符 (postgres ~) 与 JPA 标准生成器一起使用?

    我使用 JPA 2 0 标准构建以下查询 简化 select n from notif n where n message b la 我正在使用 postgresql 数据库 我真的需要 运算符 而不是像 我可以使用与 CriteriaBu
  • 获取Android库中的上下文

    我正在编写一个 Android 应用程序 它的一些功能封装在内部库中 但是 要使此功能发挥作用 库需要一个应用程序上下文的实例 为图书馆提供这种上下文的最佳方式是什么 我看到了一些选择 但没有一个有吸引力 Have my library c
  • Spring HATEOAS 和 HAL:更改 _embedded 中的数组名称

    我正在尝试使用 Spring HATEOAS 构建符合 HAL 的 REST API 经过一番摆弄后我终于开始工作了mostly正如预期的那样 示例 输出现在看起来像这样 links self href http localhost 808
  • 对对象集合进行排序[重复]

    这个问题在这里已经有答案了 如果我有一个简单的字符串列表 List
  • 在拇指上方显示修改后的 JSlider 值

    有没有一种简单的方法可以在使用某些 外观和感觉 的同时更改 JSlider 上方标签中显示的值 为了清楚起见 我正在谈论这个值 具体来说 我想显示除以 1000 的值而不是值本身 我知道如果我显示它们 我可以为刻度设置标签 但用户将不得不猜
  • 但是创建静态实用方法不应该被过度使用吗?如何避免呢? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 随着时间的推移 java项目中引入了许多实用方法来完成更复杂和简单的任务 当使用静态方法时 我们在代码中引入了紧密耦合 这使得我们的代
  • 如何在Netbeans中设置JList的ListModel?

    我在 Netbeans IDE 的帮助下设计了一个 Swing GUI 该 GUI 包含一个 JList 默认情况下 它使用 QAbstractListModel 将其作为 JList 构造函数中的参数传递以创建该 JList 我想在 Ne
  • 如何在 Eclipse 中获得完全限定的类名?

    有没有一种快速方法可以在 Eclipse 中单击 Java 类并获取其完全限定名称 或将其复制到剪贴板 2016年6月29日编辑 正如 Jeff 所指出的 您只需要执行以下第二步 1 Double click on the class na
  • Time.valueOf 方法返回错误值

    我使用 Time valueOf 方法将字符串 09 00 00 转换为 Time 对象 如下所示 Time valueOf LocalTime parse 09 00 00 当我调用 getTime 来显示我得到的值时 28800000
  • 从字节数组设置 img src

    我需要设置img src我在对象中拥有的字节数组的属性 img
  • java.lang.UnsatisfiedLinkError - android studio gradle 中的 NDK?

    文件夹结构 app main java jni Android mk Application mk hello jni c res 在构建 gradle apply plugin com android application androi
  • java Web应用程序中的日期转换

    String date1 13 03 2014 16 56 46 AEDT SimpleDateFormat sdf new SimpleDateFormat dd MM yyyy HH mm ss z sdf setTimeZone Ti
  • 从 InputStream 中删除换行符

    我喜欢从一个文件中删除所有换行符 对于 n 和 r n java io InputStream 在读取文件时 相应的方法如下所示 param target linkplain File return linkplain InputStrea
  • 如何在J2ME中获取数字的幂[重复]

    这个问题在这里已经有答案了 可能的重复 J2ME power double double 数学函数实现 https stackoverflow com questions 2076913 j2me powerdouble double ma

随机推荐

  • PHP 闭包作为可选函数参数

    当参数是 PHP 闭包时 是否可以指定默认参数值 喜欢 public function getCollection filter function e return e Stuff 我是否遗漏了一些东西 也许是不同的语法 或者根本不可能 我
  • 如何从链接共享图像,即无需下载图像,只需使用按钮共享

    我是 android studio 的初学者 我认为这会很容易 但我也没有明白 如何从链接共享图像 即 无需下载图像 只需在社交媒体 例如应用程序 上共享 我可以下载图像 然后共享 然后删除该图像 但我不想这样做 我正在使用 glide 库
  • 如何在故事板场景中嵌入自定义视图 xib?

    我在 XCode iOS 世界中相对较新 我已经完成了一些基于故事板的大小合适的应用程序 但我从未对整个 nib xib 事情进行过深入研究 我想对场景使用相同的工具来设计 布局可重用的视图 控件 所以我为我的视图子类创建了我的第一个 xi
  • 更改内容控件中表格的值

    我创建了一个 Word 加载项 并使用 Word API 1 3 在 Word 2016 版本 16 0 7341 2029 中插入一个表格 如下所示 var value 3 4 5 6 Word run function ctx var
  • Bower安装目录更改:有时会附加版本

    我有一个使用凉亭的项目 我的 Bower json name myproject version 0 0 0 dependencies angular sanitize 1 2 1 然后我运行 Bower install 然后我可以看到安装
  • 无法从 Bootstrap 弹出窗口中的输入元素获取值

    我正在尝试从 Bootstrap Popover 中放置的一些输入字段中获取值 但我得到空字符串 复杂性 表单中有一个按钮 当您单击此按钮时 会出现一个弹出窗口 其中包含 2 个输入字段和一个按钮 我想在单击按钮时捕获这两个字段的值 如果我
  • HTTP 请求返回状态码 0 意味着什么?

    当 JavaScript 网络调用 例如 fetch 或 XMLHttpRequest 或任何其他类型的 HTTP 网络请求失败且 HTTP 状态代码为 0 时 这意味着什么 这似乎不是有效的 HTTP 状态代码 因为 HTTP 规范中的其
  • 用于调试远程计算机问题的技术和工具?

    用户一直在报告我无法在我的机器上重现的问题 崩溃 错误 我发现这些问题很难解决 我已经开始使用 EurekaLog 太棒了 和 SmartInspect 这两个工具都有很大帮助 但我仍然发现很难发现一些问题 我刚刚购买大卫 阿甘斯的调试 h
  • System.Net.Http.Formatting.FormUrlEncodedMediaTypeFormatter 错误

    我正在尝试将我的 asp net 项目从 Mvc 4 升级到 5 我按照以下说明操作 http www asp net mvc tutorials mvc 5 how to upgrade an aspnet mvc 4 and web a
  • 是否保证 LINQ 从 XDocument 读取项目的顺序?

    因此 我正在做的是使用 xml 文档来确定数据库更新需要运行某些 SQL 脚本的顺序 XML 遵循此格式
  • Uvicorn 中使用 FastAPI 进行信号处理

    我有一个应用程序使用Uvicorn with FastAPI 我还打开了一些连接 例如MongoDB 一旦出现某些信号 我想优雅地关闭这些连接 SIGINT SIGTERM and SIGKILL My server py file imp
  • Javascript 正则表达式 - 删除除分号之外的所有特殊字符

    在javascript中 如何从字符串中删除除分号之外的所有特殊字符 示例字符串 ABC D A b c Qwerty 应该返回 ABCDAbc Qwerty 您可以使用正则表达式删除任何不是字母字符或分号的内容 如下所示 A Za z g
  • 模块化和面向对象编程之间的最大区别是什么?

    面向对象的程序通常包含不同类型的 对象 每个对象对应于一种特定类型的复杂数据 管理 或者可能是现实世界的对象或概念 例如银行 帐户 曲棍球运动员或推土机 模块化编程 也称为 自顶向下设计 和 逐步设计 细化 是一种软件设计技术 强调分离 将
  • 发布版本中的错误在调试模式下不存在的常见原因

    仅在发布编译模式下出现但在调试模式下不会出现的错误和异常程序行为的典型原因是什么 很多时候 在 C 的调试模式下 所有变量都初始化为 null 而在发布模式下 除非明确说明 否则不会发生同样的情况 检查是否有任何调试宏和未初始化的变量 你的
  • 在Rails中,我应该启用serve_static_assets吗?

    我目前正在使用 Apache 代理到 Thin 使用这个article http articles slicehost com 2008 5 6 ubuntu hardy apache rails and thin 我的静态资源都不起作用
  • 解决 android studio 中的 gradle 依赖问题?

    我正在尝试添加一个样式化的进度条https android arsenal com details 1 1375 https android arsenal com details 1 1375 那里说 将特定存储库添加到您的构建文件中 r
  • iOS 9 和 Swift 2 升级后,Facebook SDK 登录时出现“以“null”打开此页面”模式

    我正在将项目更新到 Swift 2 和 iOS 9 我正在做的项目之一严重依赖 Facebook 的 SDK 我用它来登录 获取用户信息等 在更新之前 一旦您登录 Safari 就会将您直接重定向到该应用程序 现在我得到一个有趣的小模态 显
  • 静态分析警告是否会使 CI 构建失败?

    我们的团队正在研究项目中静态分析的各种选项 并且对于我们是否希望我们的持续集成构建因静态分析的警告而失败有不同的意见 反对构建失败的论点是 规则中经常存在例外情况 而试图绕过这些例外只是为了使构建成功会降低生产力 更好的方法是在构建时生成报
  • 如何使文本输入不可编辑?

    所以我有一个文本输入
  • 使用 Guava 进行缓存

    哪些 Guava 类适合线程安全缓存 我使用组合键 它是动态构建的 所以 softKeys 没有意义 对吧 我在某处看到 ConcurentLinkedHashMap 这是要走的路吗 它已经在最近的版本中了吗 抱歉 提问方式很混乱 Upda