Guava Cache 初心者ガイド: アプリケーションの高速化
Guava Cache は、アプリケーションを大幅に改善できる高性能のメモリ内キャッシュ ライブラリです。パフォーマンス。 LRU (最も最近使用されていないもの)、LFU (最も最近使用されていないもの)、TTL (生存時間) など、さまざまなキャッシュ戦略を提供します。
1. Guava キャッシュのインストール
Guava キャッシュ ライブラリの依存関係をプロジェクトに追加します。
<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>31.1-jre</version> </dependency>
2. キャッシュを作成します
import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; public class GuavaCacheExample { public static void main(String[] args) { // 创建一个LRU缓存,最大容量为100 LoadingCache<String, String> cache = CacheBuilder.newBuilder() .maximumSize(100) .build(new CacheLoader<String, String>() { @Override public String load(String key) throws Exception { // 从数据库或其他数据源中加载数据 return "value-" + key; } }); // 将数据放入缓存中 cache.put("key1", "value1"); cache.put("key2", "value2"); // 从缓存中获取数据 String value1 = cache.getIfPresent("key1"); String value2 = cache.getIfPresent("key2"); // 输出结果 System.out.println(value1); // value1 System.out.println(value2); // value2 } }
3. キャッシュを使用します
キャッシュを作成したら、データの保存と取得に使用されます。 put()
メソッドを使用してデータをキャッシュに配置し、get()
メソッドを使用してキャッシュからデータを取得できます。
// 将数据放入缓存中 cache.put("key3", "value3"); // 从缓存中获取数据 String value3 = cache.getIfPresent("key3"); // 输出结果 System.out.println(value3); // value3
4. キャッシュ戦略
Guava キャッシュは、LRU (最も最近使用されていないもの)、LFU (最も最近使用されていないもの)、TTL (生存期間) などのさまざまなキャッシュ戦略を提供します。時間)。特定のニーズに基づいて、適切なキャッシュ戦略を選択できます。
// 创建一个LRU缓存,最大容量为100 LoadingCache<String, String> lruCache = CacheBuilder.newBuilder() .maximumSize(100) .build(new CacheLoader<String, String>() { @Override public String load(String key) throws Exception { // 从数据库或其他数据源中加载数据 return "value-" + key; } }); // 创建一个LFU缓存,最大容量为100 LoadingCache<String, String> lfuCache = CacheBuilder.newBuilder() .maximumSize(100) .weigher(Weighers.singleton()) .build(new CacheLoader<String, String>() { @Override public String load(String key) throws Exception { // 从数据库或其他数据源中加载数据 return "value-" + key; } }); // 创建一个TTL缓存,生存时间为10秒 LoadingCache<String, String> ttlCache = CacheBuilder.newBuilder() .expireAfterWrite(10, TimeUnit.SECONDS) .build(new CacheLoader<String, String>() { @Override public String load(String key) throws Exception { // 从数据库或其他数据源中加载数据 return "value-" + key; } });
5. キャッシュ統計
Guava キャッシュは豊富な統計情報を提供し、これらの統計を使用してキャッシュの使用状況を把握できます。
// 获取缓存的命中率 double hitRate = cache.stats().hitRate(); // 获取缓存的未命中率 double missRate = cache.stats().missRate(); // 获取缓存的平均加载时间 long averageLoadTime = cache.stats().averageLoadPenalty(); // 获取缓存的大小 long size = cache.size();
6. 結論
Guava キャッシュは、アプリケーションのパフォーマンスを大幅に向上させる高性能メモリ キャッシュ ライブラリです。 LRU (最も最近使用されていないもの)、LFU (最も最近使用されていないもの)、TTL (生存時間) など、さまざまなキャッシュ戦略を提供します。特定のニーズに基づいて、適切なキャッシュ戦略を選択できます。
以上がアプリケーションを高速化: Guava キャッシュの簡単なガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。