0

如何在 Java 中临时或几分钟缓存变量?

我需要暂时使用一个变量几分钟,因为访问数据库总是会造成巨大的性能影响。

问题是我有一个可以由用户更改的数据库配置值。需要在不重新启动服务器的情况下捕获此类更改。

因此,找到一个关于如何在 Java 中临时或几分钟缓存变量的选项。这样在 5 或 10 分钟的间隔后,我们就可以不断地清除缓存。

4

2 回答 2

0

来自 JCF 的东西。

怎么样LinkedHashMap和定制removeEldestEntry

需要注意的是,该方法仅在 puts 上调用。

于 2013-05-13T06:04:32.463 回答
0

大多数缓存框架都能够配置缓存的生存时间。

例如,如果您使用EHCache,配置将是这样的:注意 300 指的是 5 分钟

<cache name="testCache1"
 eternal="false"
 timeToLiveSeconds="300"
 overflowToDisk="true"
 diskPersistent="true"
 diskExpiryThreadIntervalSeconds="300"
 maxEntriesLocalDisk="10000"
/>

如果用户更改配置,并且系统能够检测到它,您也可以使缓存无效。

CacheManager manager = CacheManager.getInstance();
cache = manager.getCache(cacheName);
cache.remove(key);

or 

cache.removeAll();
于 2013-05-13T06:02:39.893 回答