アプリケーションを高速化: Guava キャッシュの簡単なガイド

WBOY
リリース: 2024-01-31 21:11:07
オリジナル
439 人が閲覧しました

アプリケーションを高速化: Guava キャッシュの簡単なガイド

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート