如何在Java中暂时或几分钟缓存变量?
我需要暂时使用一个变量几分钟,因为点击数据库总是会对性能造成巨大影响。
问题是我有一个db配置值,可以由用户更改。无需重新启动服务器即可捕获此类更改。
因此找到一个关于如何在Java中暂时或几分钟缓存变量的选项。因此,在5或10分钟的间隔后,我们可以不断清除缓存。
答案 0 :(得分:0)
大多数Cache Framework都能够配置缓存的实时时间。
例如,如果您使用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();
答案 1 :(得分:0)
来自JCF的东西。
LinkedHashMap
和自定义removeEldestEntry
。
警告只是在puts上调用该方法。