如何在 Java 中临时或几分钟缓存变量?
我需要暂时使用一个变量几分钟,因为访问数据库总是会造成巨大的性能影响。
问题是我有一个可以由用户更改的数据库配置值。需要在不重新启动服务器的情况下捕获此类更改。
因此,找到一个关于如何在 Java 中临时或几分钟缓存变量的选项。这样在 5 或 10 分钟的间隔后,我们就可以不断地清除缓存。
来自 JCF 的东西。
怎么样LinkedHashMap
和定制removeEldestEntry
。
需要注意的是,该方法仅在 puts 上调用。
大多数缓存框架都能够配置缓存的生存时间。
例如,如果您使用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();