在Java应用程序中,我试图在每个小时结束时(基于系统时间)使番石榴缓存的所有条目无效。为此,我了解guavaCache的invalidateAll()方法。我正在考虑是使用invalidateAll()方法还是将cache变量设置为null并允许GC清理堆。哪个更好?每种方法的优点/缺点是什么?
我的目标是确保由于系统内存不足而导致无效条目尽快从内存中清除。
[使用您正在描述的方法,使用Guava缓存可能没有什么好处,而您最好也使用HashMap
。
最好正确配置缓存的逐出策略,例如通过自动删除早于一小时的条目,或限制高速缓存的大小。
有关详细信息,请阅读eviction上的章节。