在Google Cache中,LocalManualCache是一种本地缓存的实现,它是通过手动方式进行缓存操作。LocalManualCache类中有一个invalidate方法,用于使缓存中的某个键失效。
invalidate方法的定义如下:
public void invalidate(Object key)
参数key表示要使其失效的缓存键。当调用该方法时,缓存中与该键关联的值将被清除,下次获取该键的值时将触发缓存加载器重新加载该键对应的数据。
示例用法:
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import java.util.concurrent.TimeUnit;
public class Main {
public static void main(String[] args) {
// 创建一个本地缓存
Cache<String, String> cache = CacheBuilder.newBuilder()
.expireAfterWrite(10, TimeUnit.MINUTES)
.build();
// 缓存值
cache.put("key1", "value1");
System.out.println(cache.getIfPresent("key1")); // 输出: value1
// 使缓存键失效
cache.invalidate("key1");
System.out.println(cache.getIfPresent("key1")); // 输出: null
}
}
在上述示例中,我们首先创建了一个缓存,然后缓存了一个键值对"key1"和"value1"。然后,我们调用invalidate方法使"key1"失效。接下来,我们尝试获取"key1"对应的值,结果为null,表明该键已经失效了。
需要注意的是,使用invalidate方法只能使特定的键失效,而无法一次性将所有缓存值都失效。如果需要一次性使全部缓存失效,可以使用Cache的invalidateAll方法。
// 使所有缓存键失效
cache.invalidateAll();