カフェインは、最適なキャッシングライブラリに近い高性能です。詳細については、ユーザーガイドを参照して、最新リリースについてはAPIドキュメントを閲覧してください。
キャッシュ
カフェインは、Google GuavaにインスパイアされたAPIを使用して、メモリ内キャッシュを提供します。この改善により、Guavaのキャッシュと同時リンクハッシュマップを設計する経験に基づいています。
LoadingCache < Key , Graph > graphs = Caffeine . newBuilder ()
. maximumSize ( 10_000 )
. expireAfterWrite ( Duration . ofMinutes ( 5 ))
. refreshAfterWrite ( Duration . ofMinutes ( 1 ))
. build ( key -> createExpensiveGraph ( key ));
一目で機能します
カフェインは、次のオプション機能を組み合わせたキャッシュを作成するための柔軟な構造を提供します。
- オプションで非同期に、キャッシュへのエントリの自動負荷
- 頻度と最新性に基づいて最大を超えた場合のサイズベースの立ち退き
- 最後のアクセスまたは最後の書き込み以降に測定されたエントリの時間ベースの有効期限
- エントリの最初の古いリクエストが発生したときに非同期に更新
- キーは自動的に弱い参照に包まれています
- 弱い参照またはソフト参照に自動的にラップされた値
- 退職(または削除された)エントリの通知
- 外部リソースに伝播された書き込み
- キャッシュアクセス統計の蓄積
さらに、カフェインは次の拡張機能を提供します。
- JSR-107 JCache
- グアバアダプター
- シミュレーション
統合を提供するコミュニティでカフェインを使用してください。
- プレイフレームワーク:高速Webフレームワーク
- Micronaut:モダンなフルスタックのフレームワーク
- スプリングキャッシュ:スプリング4.3およびブート1.4の時点
- Coroutines:Kotlin Coroutines Extension
- Bootique:高速でシンプルなJavaプラットフォーム
- Quarkus:超音波亜原子Java
- キャメル:ルーティングと調停エンジン
- スカフェイン:カフェインのスカララッパー
- スカラキャッシュ:Scalaでのシンプルなキャッシュ
- Jhipster:生成、開発、展開
- エディール:カフェインのコトリンラッパー
お近くのインフラストラクチャの動力:
- DropWizard:OPSフレンドリー、高性能、RESTFUL API
- Cassandra:膨大な量のデータを迅速に管理します
- コヒーレンス:ミッションクリティカルインメモリデータグリッド
- Accumulo:ソートされた分散キー/バリューストア
- Kafka:分散イベントストリーミングプラットフォーム
- HBase:分散、スケーラブル、ビッグデータストア
- Apache Solr:ぼんやりと速いエンタープライズ検索
- Infinispan:分散インメモリデータグリッド
- Redisson:超高速インメモリデータグリッド
- OpenWhisk:サーバーレスクラウドプラットフォーム
- Corfu:クラスター一貫性プラットフォーム
- Grails:GroovyベースのWebフレームワーク
- Finagle:拡張可能なRPCシステム
- NEO4J:みんなのグラフ
- ドルイド:リアルタイム分析
ニュースで
- カフェインの建築の詳細な説明。
- 最新のキャッシュのデザイン:パート#1、パート#2(スライド)ハイスカリビリティ
- カフェインは、その新しい立ち退き政策を評価する研究論文の一部として提示されています。
- ティニルフ:ギル・アインツガー、ロイ・フリードマン、ベン・マネスによる非常に効率的なキャッシュ入学ポリシー
- Gil Einziger、Ohad Eytan、Roy Friedman、Ben ManesによるAdaptive Software Cache Management
- 軽量の堅牢なサイズの認識キャッシュ管理、ギル・アインツガー、オハド・エタン、ロイ・フリードマン、ベン・マネス
ダウンロード
Maven Centralからダウンロードするか、Gradle経由で依存しています。
implementation( " com.github.ben-manes.caffeine:caffeine:3.1.8 " )
// Optional extensions
implementation( " com.github.ben-manes.caffeine:guava:3.1.8 " )
implementation( " com.github.ben-manes.caffeine:jcache:3.1.8 " )
Java 11以上の場合、 3.x
使用しても、それ以外の場合は2.x
を使用します。
変更の詳細については、リリースノートを参照してください。
開発バージョンのスナップショットは、Sonatypeのスナップショットリポジトリで入手できます。