7.2. 非データセンターオブジェクトのサポート


ユーザーの観点では、Red Hat Data Grid が非システムオブジェクトの保存をサポートするかどうかが非常に一般的です。4.0 では、Red Hat Data Grid キャッシュインスタンスは、以下の場合にのみ、非終了キーまたは値オブジェクトのみを保存できます。

  • キャッシュは、ローカルキャッシュ として設定されます。
  • キャッシュはレイジーシリアライゼーションなどで設定されていません
  • キャッシュが write-behind キャッシュストアで設定されない

これらのオプションのいずれかが true の場合、キャッシュ内のキー/値のペアをマーシャリングし、現時点では java.io.336 または java.io. Externalizable を拡張する必要があります。

ヒント

Red Hat Data Grid 5.0 以降、ユーザーがこれらの非サルカライズ可能なオブジェクトに意味のある Externalizer 実装を提供できる限り、Red Hat Data Grid 5.0 はアンマーシャリングします。

インスタンスが Red Hat Data Grid に保存されているクラスに Rich または Externalizable を再調整できない場合は、XStream のようなものを使用して、Red Hat Data Grid に格納できる文字列に変換することもできます。XStream の使用に関する注意点は、XML 変換が必要な XML 変換により、キー/値オブジェクトを格納するプロセスが遅くなるためです。

7.2.1. バイナリーとして保存

バイナリーとして保存すると、データをシリアライズされた形式で保存できます。これは、Red Hat Data Grid がオブジェクトのシリアライズとデシリアライズによって使用されて必要な時点を遅らせる仕組みで、レイジーデシリアライズを実現すると便利です。これは通常、デシリアライズが必要な呼び出しのスレッドコンテキストクラスローダーを使用して行われ、クラスローダーの分離を提供する効果的なメカニズムであることを意味します。デフォルトではレイジーデシリアライズは無効になっていますが、有効にする場合は、以下のように実行できます。

  • キャッシュレベルでの XML より <* -cache /> 要素の下にあり、以下のように なります。
<memory>
   <binary />
</memory>
Copy to Clipboard Toggle word wrap
  • プログラムで行う:
ConfigurationBuilder builder = ...
builder.memory().storageType(StorageType.BINARY);
Copy to Clipboard Toggle word wrap

7.2.1.1. 等価性に関する考慮事項

Lazy deserialization/storing をバイナリーとして使用する場合、キーと値は WrappedBytes としてラップされます。このラッパークラスは、オンデマンドでシリアル化とデシリアライズを透過的に行い、内部でオブジェクト自体への参照、またはこのオブジェクトのシリアライズされたバイトアレイ表現を持つ場合があります。

これは、等価動作に特に有効です。このクラスの equals()メソッドは、比較時に両方のインスタンスがシリアライズされているか、またはデシリアライズされた形式であるかどうかに応じて、ラップされたオブジェクトインスタンスの equals()メソッドに委譲されるか、またはラップされたオブジェクトインスタンスの equals()メソッドに委譲されます。比較される 2 つのインスタンスの形式が異なる場合、1 つのインスタンスはシリアライズまたはデシリアライズされます。

これは、storeAsBinary を使用すると、キャッシュに保存されている鍵が機能する方法に影響します。これは、MarishalledValue でラップされるキーの比較が行われるためです。 キーに equals()メソッドの実装は、上記のようにキーが MarshalledValue としてラップされる場合は、等価比較の動作を認識する必要があります。

7.2.1.2. 復元コピー経由のストア別値

設定 ストアAsBinary は、Deensive コピーを有効にすることができます。これにより、動作のようなストアごとの値が可能になります。

Red Hat Data Grid は、保存時にオブジェクトがマーシャリングするため、ローカルキャッシュだけでなく、オブジェクト参照への変更はキャッシュに保存されません。これにより、動作のような store-by-value が提供されます。storeAsBinary の有効化が可能です。

  • キャッシュレベルの XML より、<* -cache /> または < default /&gt; 要素のいずれかで以下を 行います。
<store-as-binary keys="true" values="true"/>
Copy to Clipboard Toggle word wrap
  • プログラムで行う:
ConfigurationBuilder builder = ...
builder.storeAsBinary().enable().storeKeysAsBinary(true).storeValuesAsBinary(true);
Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る