我正在浏览 Guava Cache 示例,想知道是否有办法防止某些条目在某些情况下从缓存中被逐出。
就像,如果应用程序正在使用一个条目,那么您不太可能希望它被驱逐!
我能想到的一种CacheBuilder.weigher()
方法是使用基于大小的驱逐方法,正如 Javadoc 所述:
当条目的权重为零时,将不会考虑基于大小的驱逐(尽管它仍然可以通过其他方式驱逐)。
但是权重是在开始时计算的,并且在缓存条目的生命周期内是静态的。因此,当应用程序不再使用某个条目时,它的权重不能设置为零。
有没有其他有效的方法来实现这一目标?就像,在驱逐特定条目之前,番石榴缓存会调用一个方法,无论它是否应该被驱逐!
另外,在 MVP 应用程序中缓存 Presenter 实例是不是一个坏主意?因为,我将使用 Guava Cache 在我的应用程序中缓存 Presenter 实例!