java - 如何在tomcat/java中仅在特定时期内存储一个值

标签 java caching tomcat tomcat7

<分区>

我想在 tomcat java web 应用程序的集合中仅在特定时间段内存储一些值。

场景是:

  • value1 先加
  • value2value1
  • 后 1 分钟添加
  • value3 是在 value2 添加之后添加的
  • value4value1 添加 2 分钟后添加

此值在添加后应仅在 5 分钟内可用。 5 分钟后,他们应该从列表中删除。 无论上次访问时间如何,每个值都会在 5 分钟后(添加后)过期。

我已经开始使用 ConcurrentHashMapScheduledExecutor 来实现它。

我找不到适合此要求的内置缓存机制,如果使用缓存,则在更频繁地访问值时,它不会从列表中删除/使值过期。

如果有人能给我方向或任何现有实现的引用,我将不胜感激。

最佳答案

google guava可以做到(很简单)

com.google.common.cache.Cache<Integer, String> values = CacheBuilder.newBuilder().concurrencyLevel(4).expireAfterWrite(5, TimeUnit.MINUTES).maximumSize(20).build();        

values.put(someKey, "string val");

关于java - 如何在tomcat/java中仅在特定时期内存储一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11734339/

相关文章:

entity-framework - 使用 Entity Framework 进行缓存

java - 使用 log4j2 和 slf4j 没有控制台输出

java - 从数据库向其赋值后变量为空

java - 检查一个点是否在指定的矩形内

java - Java Web 应用程序的特殊 URL 格式

tomcat - 将多个应用程序部署到 Tomcat

apache - Ephesoft 无法访问(请求的资源不可用)?

java - 使用 JPA2 进行多重联接

node.js - Node.js 中的 LRU 缓存

java - 如何在浏览器中跳过访问页面的历史记录