Spring Data Redis

Serializers

Serializer説明(せつめい)メリットデメリット
GenericJackson2JsonRedisSerializerシリアライズとデシリアライズに Jackson JSON ライブラリを使用(しよう)- JSON 形式(けいしき) をサポート、(ひろ)使(つか) われ柔軟(じゅうなん)
- カスタマイズオプションあり。
- 良好(りょうこう) なパフォーマンス。
- Jackson ライブラリの依存(いぞん)必要(ひつよう)
- JSON 専用(せんよう) のため、(ほか) のデータ形式(けいしき) には不向(ふむ) き。
GenericToStringSerializertoString() メソッドを使用(しよう) してオブジェクトを文字列(もじれつ)変換(へんかん)- シンプルで使(つか) いやすい。
- 追加(ついか)依存(いぞん) 不要(ふよう)
- 柔軟性(じゅうなんせい) とカスタマイズ(せい)制限(せいげん) あり。
- バイナリシリアライザと(くら) べてパフォーマンスが(ひく)場合(ばあい) あり。
Jackson2JsonRedisSerializerGenericJackson2JsonRedisSerializer同様(どうよう) 、Jackson JSON ライブラリを使用(しよう)- JSON 形式(けいしき) をサポート、(ひろ)使(つか) われ柔軟(じゅうなん)
- カスタマイズオプションあり。
- 良好(りょうこう) なパフォーマンス。
- Jackson ライブラリの依存(いぞん)必要(ひつよう)
- JSON 専用(せんよう) のため、(ほか) のデータ形式(けいしき) には不向(ふむ) き。
JdkSerializationRedisSerializerJava の()() みシリアライズ機構(きこう)使用(しよう) するデフォルトのシリアライザ。- 使(つか) いやすく、追加(ついか)依存(いぞん) 不要(ふよう)
- 任意(にんい) のシリアライズ可能(かのう) な Java オブジェクトをサポート。
- (ほか) のシリアライザと(くら) べてパフォーマンスが(ひく) い。
- シリアライズされたデータは人間(にんげん)() めず、クロスプラットフォーム互換性(ごかんせい) がない。
OxmSerializerXML シリアライズとデシリアライズに JAXB (Java Architecture for XML Binding) を使用(しよう)- XML 形式(けいしき) と Java オブジェクトから XML へのマッピングをサポート。
- JAXB アノテーションでカスタマイズ可能(かのう)
- JAXB の依存(いぞん)必要(ひつよう)
- XML 専用(せんよう) のため、(ほか) のデータ形式(けいしき) には不向(ふむ) き。

@class

  • Spring Data Redis の @class フィールドは、オブジェクトが Redis に保存(ほぞん) される(さい) に、シリアライズされたオブジェクトの完全修飾(かんぜんしゅうしょく) クラス(めい)格納(かくのう) するために使用(しよう) されます。 このフィールドは deserialization補助(ほじょ) するために Spring Data Redis によってシリアライズされたオブジェクトに追加(ついか) されます。
  • オブジェクトが Redis から取得(しゅとく) される(さい) 、Spring Data Redis は @class フィールドを使用(しよう) してオブジェクトの(かた)判定(はんてい) し、適切(てきせつ)deserialize します。これは Redis がすべてのデータを単純(たんじゅん) なキーバリューペアとして保存(ほぞん) するため、オブジェクト取得時(しゅとくじ)固有(こゆう)(かた) 情報(じょうほう)利用(りよう) できないためです。
  • シリアライズされたデータに @class フィールドを(ふく) めることで、Spring Data Redis は(かく) オブジェクトに(ただ) しい deserialization ロジックが使用(しよう) されることを保証(ほしょう) できます。これにより、オブジェクトの(かた)時間(じかん) とともに変更(へんこう) されても、Redis (ない)既存(きそん) データとの互換性(ごかんせい)維持(いじ) しながらアプリケーションのデータモデルを進化(しんか) させることが可能(かのう) になります。
  • @class フィールドは Spring Data Redis に固有(こゆう) のものであり、Redis プロトコルやデータモデルの一部(いちぶ) ではないことに注意(ちゅうい) してください。Redis を直接(ちょくせつ) 使用(しよう) する場合(ばあい) (Spring Data Redis なし)、シリアライズと deserialization自分(じぶん)処理(しょり) し、シリアライズされたデータに(かた) 情報(じょうほう)(ふく) める方法(ほうほう)() つける必要(ひつよう) があります。