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