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>
<memory>
<binary />
</memory>
- プログラムで行う:
ConfigurationBuilder builder = ... builder.memory().storageType(StorageType.BINARY);
ConfigurationBuilder builder = ...
builder.memory().storageType(StorageType.BINARY);
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 /> 要素のいずれかで以下を
<store-as-binary keys="true" values="true"/>
<store-as-binary keys="true" values="true"/>
- プログラムで行う:
ConfigurationBuilder builder = ... builder.storeAsBinary().enable().storeKeysAsBinary(true).storeValuesAsBinary(true);
ConfigurationBuilder builder = ...
builder.storeAsBinary().enable().storeKeysAsBinary(true).storeValuesAsBinary(true);