import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import java.util.concurrent.TimeUnit;
public class ApiCacheExample {
private static Cache<String, String> apiCache = CacheBuilder.newBuilder()
.maximumSize(100)
.expireAfterWrite(5, TimeUnit.MINUTES)
.build();
public static void main(String[] args) {
String apiUrl = "https://api.example.com/data";
// 第一次调用API并缓存结果
String response = fetchDataFromApi(apiUrl);
System.out.println("API响应: " + response);
// 再次调用,应该从缓存中获取
String cachedResponse = fetchDataFromApi(apiUrl);
System.out.println("从缓存获取的响应: " + cachedResponse);
}
private static String fetchDataFromApi(String apiUrl) {
// 检查缓存
String cachedResponse = apiCache.getIfPresent(apiUrl);
if (cachedResponse != null) {
return cachedResponse; // 从缓存中获取
}
// 模拟API调用
String response = "";
// 将结果放入缓存
apiCache.put(apiUrl, response);
return response;
}
}
Guava缓存外部API响应数据
最新推荐文章于 2024-10-06 23:10:19 发布