jjzjj

CacheBuilder

全部标签

java - Guava CacheBuilder 最大尺寸

我想弄清楚您在GuavaCacheBuildermaximumSize()中指定的数字代表什么。假设我的代码中有这样的东西,CacheprogramCache=CacheBuilder.newBuilder().maximumSize(1000).build();我指定为最大大小的1000是否意味着在它开始踢出LRU之前我可以在缓存中拥有一千个不同的条目(无论对象可能有多大)?如果是这种情况,对象的大小是否有限制?或者1000是否意味着,我有1000mb(MB正确吗?)可以使用,并且在它开始踢出LRU之前,我可以在缓存中拥有尽可能多的对象,最多1000mb?

java - 如何使用 guava CacheBuilder?

我想用GuavaCacheBuilder,但无法找到任何明确的示例来实现这一点。文档说明了以下代码:LoadingCachegraphs=CacheBuilder.newBuilder().maximumSize(1000).build(newCacheLoader(){publicGraphload(Keykey)throwsAnyException{returncreateExpensiveGraph(key);}});问题:这是什么createExpensiveGraph(key)方法?这是一个返回HashMap的方法吗?映射?我与key有什么关系?值(value)?或者我也可以

java - Google Guava 缓存默认过期

我想知道Guava缓存的默认过期策略。我的需求是,一次写,多次读。缓存应该永远不会过期。这是Guava的默认行为吗? 最佳答案 假设您正在谈论CacheBuilder来自GoogledocsBydefaultcacheinstancescreatedbyCacheBuilderwillnotperformanytypeofeviction. 关于java-GoogleGuava缓存默认过期,我们在StackOverflow上找到一个类似的问题: https:/

java - 使用弱/软的 Guava CacheBuilder 或 MapMaker

我不习惯处理Java中的软引用和弱引用,但我理解其中的原理,因为我习惯处理像Gemfire这样的数据网格,它在内存已满时提供溢出到硬盘功能,可能使用软引用或我猜是类似的东西。我在Guava中不明白的是它提供了使键变软/变弱以及使值变软/变弱的方法。例如,我只是想知道使用非软值创建软键有什么意义?我的意思是,当开始收集软引用时,我们无法再通过其键找到条目,那么为什么我们希望值保留在映射中?谁能给我们一些用例:弱键/软值弱键/正常值软键/弱值软键/正常值谢谢编辑我不确定我的问题是否足够精确,所以我想知道的是:收集键(弱/软)时,值会发生什么变化(非弱/软)当收集到一个值(弱/软)时,键会发

java - CacheBuilder 和 redis 一起使用

GuavaCacheBuilder只使用一个JVM。我想使用CacheBuilder接口(interface)从redis加载数据,然后redis依次从MySQL加载数据。我该如何解决?有可能吗? 最佳答案 为什么不试试SpringCache框架?它对Redis做了很好的包装。 关于java-CacheBuilder和redis一起使用,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/question

java - CacheBuilder 和 redis 一起使用

GuavaCacheBuilder只使用一个JVM。我想使用CacheBuilder接口(interface)从redis加载数据,然后redis依次从MySQL加载数据。我该如何解决?有可能吗? 最佳答案 为什么不试试SpringCache框架?它对Redis做了很好的包装。 关于java-CacheBuilder和redis一起使用,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/question

java - 使用 Guava MapMaker/CacheBuilder 处理空值

我尝试使用MapMaker/CacheBuilder制作缓存,但我不明白如何正确处理空值。ConcurrentMapgraphs=newMapMaker().concurrencyLevel(4).weakKeys().maximumSize(10000).expireAfterWrite(10,TimeUnit.MINUTES).makeComputingMap(newFunction(){publicGraphapply(Keykey){returncreateExpensiveGraph(key);}});如果createExpensiveGraph方法返回空值,则抛出Nullp

java - 使用 Guava MapMaker/CacheBuilder 处理空值

我尝试使用MapMaker/CacheBuilder制作缓存,但我不明白如何正确处理空值。ConcurrentMapgraphs=newMapMaker().concurrencyLevel(4).weakKeys().maximumSize(10000).expireAfterWrite(10,TimeUnit.MINUTES).makeComputingMap(newFunction(){publicGraphapply(Keykey){returncreateExpensiveGraph(key);}});如果createExpensiveGraph方法返回空值,则抛出Nullp

java - Guava 如何过期其 CacheBuilder 中的条目?

我想使用这里推荐的CacheBuilder:Javatime-basedmap/cachewithexpiringkeys但是我不明白什么时候Guava知道条目会过期。Guava是如何做到这一点的,它会产生什么性能成本? 最佳答案 Guava团队成员在这里。GuavaCache实现在正常维护操作过程中使条目过期,这在缓存写入操作期间以每个段为基础发生,偶尔在缓存读取操作期间发生。条目通常不会在恰好它们的过期时间过期,只是因为Cache故意决定不创建自己的维护线程,而是让用户决定是否连续需要维护。我将重点介绍expireAfterAc

java - Guava 如何过期其 CacheBuilder 中的条目?

我想使用这里推荐的CacheBuilder:Javatime-basedmap/cachewithexpiringkeys但是我不明白什么时候Guava知道条目会过期。Guava是如何做到这一点的,它会产生什么性能成本? 最佳答案 Guava团队成员在这里。GuavaCache实现在正常维护操作过程中使条目过期,这在缓存写入操作期间以每个段为基础发生,偶尔在缓存读取操作期间发生。条目通常不会在恰好它们的过期时间过期,只是因为Cache故意决定不创建自己的维护线程,而是让用户决定是否连续需要维护。我将重点介绍expireAfterAc
12