ホームページ > Java > &#&チュートリアル > Guava を使用して Java で時間ベースの有効期限マップまたはキャッシュを作成するにはどうすればよいですか?

Guava を使用して Java で時間ベースの有効期限マップまたはキャッシュを作成するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-24 14:42:15
オリジナル
528 人が閲覧しました

How Can I Create a Time-Based Expiring Map or Cache in Java Using Guava?

期限切れキーのある Java 時間ベースのマップ/キャッシュ

Java プログラミング言語で、マップまたはキャッシュ内の時間ベースのエントリを管理するは一般的な要件です。この記事では、Google コレクション (Guava) を使用して期限切れのエントリを自動的に削除するソリューションを提供します。

ソリューション

Guava の MapMaker クラスは、有効期限を調整できる時間ベースのマップを作成できます設定。 MapMaker API では、次のようなさまざまなパラメータをカスタマイズできます。

  • 同時実行レベル
  • キーと値のタイプ (強い/ソフト/弱い)
  • 最大サイズ
  • 有効期限

使用量例

次のコード スニペットは、同時時間ベースのマップを作成する方法を示しています。

ConcurrentMap<Key, Graph> graphs = new MapMaker()
   .concurrencyLevel(4)
   .softKeys()
   .weakValues()
   .maximumSize(10000)
   .expiration(10, TimeUnit.MINUTES)
   .makeComputingMap(
       new Function<Key, Graph>() {
         public Graph apply(Key key) {
           return createExpensiveGraph(key);
         }
       });
ログイン後にコピー

この例では、マップは期限切れのエントリを 10 分ごとに自動的に削除します。

アップデート

グアバ10.0 以降では、MapMaker メソッドは非推奨になり、CacheBuilder が優先されます:

LoadingCache<Key, Graph> graphs = CacheBuilder.newBuilder()
    .maximumSize(10000)
    .expireAfterWrite(10, TimeUnit.MINUTES)
    .build(
        new CacheLoader<Key, Graph>() {
          public Graph load(Key key) throws AnyException {
            return createExpensiveGraph(key);
          }
        });
ログイン後にコピー

以上がGuava を使用して Java で時間ベースの有効期限マップまたはキャッシュを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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