如何在Java中临时或几分钟缓存变量?
我需要临时使用一个变量几分钟,因为命中数据库总是会造成巨大的性能影响。
问题是我有一个可以由用户更改的db配置值。这样的更改需要在不重新启动服务器的情况下捕获。
因此,在Java中找到一个关于如何临时或几分钟缓存变量的选项。因此,在5或10分钟的间隔之后,我们可以不断地清除缓存。
发布于 2013-05-13 14:02:40
大多数cache框架都能够配置Cache的生存时间。
例如,如果您使用的是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-13 14:04:32
来自JCF的东西。
LinkedHashMap和定制removeEldestEntry怎么样?
需要注意的是,该方法仅在puts上调用。
https://stackoverflow.com/questions/16515668
复制相似问题