ホームページ >Java >&#&チュートリアル >Guava を使用して Java で時間ベースの有効期限付きキャッシュを作成する方法
Java では、時間ベースのキャッシュの処理が課題となる場合があります。キーは一定の期間が経過すると期限切れになる場合があり、これらの期限切れのエントリを自動的に削除することが必要になる場合があります。
この問題に対する 1 つの解決策は、現在 Guava として知られる Google コレクションの機能を活用することです。 Guava の MapMaker クラスは、期限切れのキーを使用してマップを作成するための便利なメカニズムを提供します。
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); } });
MapMaker では、さまざまなパラメータを指定できます。
その後、Guava はこれらの 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); } });
CacheBuilder は、Java で時間ベースのキャッシュを管理するための、より簡潔で更新された API を提供します。
以上がGuava を使用して Java で時間ベースの有効期限付きキャッシュを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。