シリアル化フォーマット
NCache シリアル化を使用して、オブジェクトをネットワーク通信と保存に適した形式に変換します。 JSONの (NAIST) と バイナリ シリアル化により、アプリケーションのアーキテクチャ要件に応じて、高速ローカル処理、クロスプラットフォームの移植性、またはメモリ効率のためにキャッシュを最適化できます。
ネットワーク経由で送信されるキャッシュデータは、シリアル化する必要があります。シリアル化されたデータが送信または取得された後、逆シリアル化プロセスによってデータが読み取られ、元のオブジェクトまたはデータ構造が再構築されます。このシリアル化/逆シリアル化プロセス全体には、時間、メモリ、パフォーマンスなどの要素が関係します。シリアル化フォーマットを選択する際には、これらの要素を考慮する必要があります。
によって提供されるシリアル化形式にはXNUMXつのタイプがあります NCache:
重要
バイナリシリアル化は設定できません NCache 5.3.7 以降。さらに、ASP.NET 5.0 以降を使用している場合は、JSON シリアル化を使用することをお勧めします。詳細については、こちらをクリックしてください。 こちら.
JSONシリアル化
JSONの JSONは、データの保存と交換に使用されるテキストベースの構文です。機械による解析が容易で、ユーザーにとっても理解しやすい形式です。JSONシリアライゼーションでは、シリアライズ時にオブジェクトがJSON形式に変換され、デシリアライズ時に元のオブジェクトに変換されます。
.NETを検討してください 製品 製品のデータを含むクラス。これには、さまざまな属性が含まれます。 商品名, 商品ID, 商品の有効期限.
Product product = new Product();
product.Name = "Apple";
product.Expiry = new DateTime(2008, 12, 28);
product.Sizes = new string[] { "Small" };
このデータは、次のJSON文字列にシリアル化されます。
{
"Name": "Apple",
"Expiry": "2008-12-28T00:00:00",
"Sizes":
[
"Small"
]
}
使用されるシリアライザーは、 ニュートンソフト サードパーティのシリアライザ。これは、データのコンパクトで便利なシリアライズのための好ましいアプローチとなる可能性があります。以下にカスタムシリアライザの例を示します。 Account クラス Password プロパティはシリアル化から除外されるようにマークされています。
public class Account
{
public string FullName { get; set; }
public string EmailAddress { get; set; }
[JsonIgnore]
public string Password { get; set; }
}
今、作成します Account すべてのプロパティの値を持つオブジェクト:
Account account = new Account
{
FullName = "Joe User",
EmailAddress = "joe@example.com",
Password = "VHdlZXQgJ1F1aWNrc2lsdmVyJyB0byBASmFtZXNOSw=="
};
から Password 物件は [JsonIgnore]シリアル化されたJSON出力には含まれません。
{
"FullName": "Joe User",
"EmailAddress": "joe@example.com"
}
お願い
JSONシリアル化が特定のカスタム型を適切に処理しない場合は、外部のNewtonsoftを設定できます。 JsonConverter そのタイプの場合。詳細については、以下を参照してください。 外部のNewtonsoft JsonConverterのサポート.
バイナリ シリアル化
バイナリ形式では、ユーザーオブジェクト、例えば Product オブジェクトは、キャッシュに送信される前にクライアント側でシリアル化されます。 NCache サーバーはアイテムをシリアル化されたバイナリ形式で保存します。アイテムが取得されると、サーバーは保存されたバイナリデータをクライアントに返し、クライアント側で元のオブジェクト型に逆シリアル化されます。
バイナリ形式は、アプリケーションが主にクライアント側で完全なオブジェクトを保存および取得する場合に便利です。JSONと同様に、通常の追加および取得操作のために、サーバー上でデータをシリアル化された形式で保持します。ただし、JSONとは異なり、バイナリ形式はバイナリ表現を使用します。これは一般的にテキストベースのJSONよりもコンパクトであり、データが人間が読みやすい形式である必要がない場合や、JSONとして処理される必要がない場合に適しています。
バイナリ形式は、クライアント側で処理の大部分が行われる場合、特に次のような操作に有効です。 追加, 更新, フェッチ, 除去 キャッシュからのデータ。たとえば、シリアル化された Product オブジェクトはキャッシュから取得され、その内容が表示されます。サーバーは保存されているバイナリデータを返し、クライアントはそれをローカルで逆シリアル化します。
同様に、 Product オブジェクトはバイナリ形式を使用してキャッシュに追加され、ネットワーク経由で送信される前にシリアル化され、同じシリアル化された形式でキャッシュに保存されます。このため、バイナリ形式は、主に完全なオブジェクトを扱い、キャッシュデータを読み取り可能なJSON形式で保存する必要のないアプリケーションに適しています。