5.5. ファイルシステムベースのキャッシュストア


通常、ファイルシステムベースのキャッシュストアは、メモリーからオーバーフローしたデータを保存し、サイズや時間の制限を超過する、ローカルで利用可能なキャッシュストアを持つキャッシュを取得する場合に使用されます。

警告

NFS、Windows 共有などの共有ファイルシステムでファイルシステムベースのキャッシュストアを使用すると、適切なファイルロックが実装されず、データが破損する可能性があるため、回避する必要があります。ファイルシステムは通常トランザクションではないため、トランザクションコンテキストでキャッシュを使用しようとすると(コミットフェーズ中に発生する)ファイルへの書き込みに失敗します。

5.5.1. 単一ファイルストア

単一ファイルキャッシュストアは、すべてのデータを 1 つのファイルに保持します。データを検索する方法は、キーのインメモリーインデックスと、その値の位置を保持することで、このファイルにあります。これにより、古いファイルキャッシュストアと比較してパフォーマンスが向上します。ただし、注意点があります。1 つのファイルベースのキャッシュストアは鍵をメモリーに保持するため、メモリー消費が増大するため、大きなキーを持つキャッシュを使用することは推奨されません。

特定のユースケースでは、このキャッシュストアは断片化からの影響を受けます。大きな値を保存すると、領域は再利用されず、エントリーがファイルの末尾に追加されます。スペース(現在は空)は、配置できる別のエントリーを書き込む場合にのみ再利用されます。また、キャッシュからすべてのエントリーを削除すると、ファイルは縮小されず、デフラグされません。

以下は、単一のファイルキャッシュストアで使用できる設定オプションです。

  • path は、Red Hat Data Grid がデータを格納するファイルシステムの場所です。

    埋め込みデプロイメントの場合、Red Hat Data Grid はデータを現在の作業ディレクトリーに保存します。別の場所にデータを保存するには、そのディレクトリーへの絶対パスを値として指定します。

    サーバーのデプロイメントの場合には、Red Hat Data Grid はデータを $RHDG_HOME/data に保存します。Red Hat Data Grid サーバーのデフォルトの場所は変更しないでください。つまり、サーバーデプロイメントで path の値を設定しないでください。

パス宣言を作成し、ファイルストアの場所に relative-to 属性を使用する必要があります。relative-to をディレクトリーの場所または環境変数に設定すると、Red Hat Data Grid サーバーの起動に失敗します。

  • max-entries は、このファイルストアに保持するエントリーの最大数を指定します。前述のように、ルックアップを迅速化するために、単一のファイルキャッシュストアはキーとその対応する位置をファイルに保持します。このインデックスでメモリー消費の問題が発生するのを回避するために、このキャッシュストアは、保存するエントリーの最大数によってバインドされます。この制限を超えると、インメモリーインデックスと基礎となるファイルベースのキャッシュストアの両方から LRU アルゴリズムを使用してエントリーが完全に削除されます。そのため、Red Hat Data Grid がキャッシュとして使用される場合にのみ最大制限を設定すると、コンテンツを再計算できるか、権威データストアから取得できます。Red Hat Data Grid が権威データストアとして使用されるときにこの最大制限が設定されている場合には、データが失われる可能性があるため、このユースケースでは推奨されません。デフォルト値は -1 で、ファイルストアサイズは無制限になります。

5.5.1.1. 宣言型設定

以下の例は、単一のファイルキャッシュストアの宣言設定を示しています。

ライブラリーモード

<persistence>
   <file-store path="/tmp/myDataStore" max-entries="5000"/>
</persistence>
Copy to Clipboard Toggle word wrap

サーバーモード

<persistence>
   <file-store max-entries="5000"/>
</persistence>
Copy to Clipboard Toggle word wrap

5.5.1.2. プログラムによる設定

以下の例は、単一のファイルキャッシュストアのプログラムによる設定を示しています。

ConfigurationBuilder b = new ConfigurationBuilder();
b.persistence()
    .addSingleFileStore()
    .location("/tmp/myDataStore")
    .maxEntries(5000);
Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る