ホームページ  >  記事  >  データベース  >  Redis シリアル化変換タイプのエラーを解決する方法

Redis シリアル化変換タイプのエラーを解決する方法

WBOY
WBOY転載
2023-05-30 20:26:001192ブラウズ

タイプ「org.springframework.data.redis.core.convert.MappingRedisConverter」の値を必要なタイプ「org.springframework.data.redis.core.mapping.RedisMappingContext」に変換できません: 一致するエディターがありませんまたは変換戦略が見つかりました

setValue のシリアル化メソッド中にエラーが報告されました。当初は RedisSerializer.json() メソッドが使用されていましたが、エラーが報告されました。

template.setConnectionFactory(factory);
        // key序列化方式
        template.setKeySerializer(RedisSerializer.string());
        // value序列化方式
        template.setValueSerializer(RedisSerializer.json());
        // hash key的序列化方式
        template.setHashKeySerializer(RedisSerializer.string());
        // hash value的序列化方式
        template.setHashValueSerializer(RedisSerializer.json());

Changed to問題を解決するには、次のようにします。

template.setConnectionFactory(factory);
        // key序列化方式
        template.setKeySerializer(RedisSerializer.string());
        // value序列化方式
        template.setValueSerializer(new Jackson2JsonRedisSerializer<>(Object.class));
        // hash key的序列化方式
        template.setHashKeySerializer(RedisSerializer.string());
        // hash value的序列化方式
        template.setHashValueSerializer(new Jackson2JsonRedisSerializer<>(Object.class));

Redis では、複数のシリアル化実装から選択できます。このうち、Jackson2JsonRedisSerializer と RedisSerializer.json() は Redis でのシリアル化実装です。両者の違いは次のとおりです。

Jackson2JsonRedisSerializer は、Jackson ライブラリを使用して Java オブジェクトを JSON 形式の文字列にシリアル化し、Redis に保存します。 Redis から読み取られた JSON 文字列を Java オブジェクトに変換することもできます。したがって、Jackson2JsonRedisSerializer を使用すると、JSON 形式のデータを簡単に処理でき、複雑な Java オブジェクトのシリアル化と逆シリアル化をより適切に実行できます。 Java オブジェクトの一部のフィールドはシリアル化中に無視される可能性があるため、シリアル化プロセスを完全に制御するには、特定の構成が必要です。

RedisSerializer.json() は、Redis の組み込み JSON シリアライザーを使用して、Java オブジェクトを JSON 形式の文字列にシリアル化し、Redis に保存します。 Redis から取得した JSON 文字列を Java オブジェクトに逆シリアル化するために使用することもできます。 Jackson2JsonRedisSerializer と比較すると、RedisSerializer.json() はシリアル化プロセス中に Java オブジェクトのすべてのフィールドを Redis にシリアル化しますが、複雑な Java オブジェクトを扱う場合は、追加の構成が必要になる場合があります。

したがって、どのシリアル化方法を選択するかは、使用シナリオと特定のニーズによって異なります。複雑な Java オブジェクトを扱う必要があり、シリアル化と逆シリアル化を細かく制御することが重要な場合は、Jackson2JsonRedisSerializer の方が適しています。また、処理されるデータが比較的単純である場合、または単に Java オブジェクトを JSON 形式の文字列に変換して保存するだけの場合は、RedisSerializer.json() の方が適している可能性があります。

以上がRedis シリアル化変換タイプのエラーを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。