Maison > base de données > Redis > Comment résoudre l'erreur de type de conversion de sérialisation Redis

Comment résoudre l'erreur de type de conversion de sérialisation Redis

WBOY
Libérer: 2023-05-30 20:26:00
avant
1289 Les gens l'ont consulté

Impossible de convertir la valeur de type 'org.springframework.data.redis.core.convert.MappingRedisConverter' en type requis 'org.springframework.data.redis.core.mapping.RedisMappingContext' : non ​​éditeurs correspondants ou stratégie de conversion trouvée

Une erreur a été signalée lors de la méthode de sérialisation de setValue Il s'est avéré que la méthode RedisSerializer.json() a été utilisée, mais une erreur a été signalée. 🎜🎜#

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());
Copier après la connexion

Changed Cela peut être résolu comme suit :

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));
Copier après la connexion

Dans Redis, vous avez le choix entre plusieurs implémentations de sérialisation. Parmi eux, Jackson2JsonRedisSerializer et RedisSerializer.json() sont des implémentations de sérialisation dans Redis. Leurs différences sont les suivantes :

Jackson2JsonRedisSerializer utilise la bibliothèque Jackson pour sérialiser les objets Java en chaînes au format JSON et les stocker dans Redis. Il peut également convertir les chaînes JSON lues depuis Redis en objets Java. Par conséquent, l'utilisation de Jackson2JsonRedisSerializer peut facilement traiter les données au format JSON et effectuer une meilleure sérialisation et désérialisation des objets Java complexes. Pour contrôler entièrement le processus de sérialisation, certaines configurations sont requises car certains champs des objets Java peuvent être ignorés lors de la sérialisation.

RedisSerializer.json() utilise le sérialiseur JSON intégré de Redis pour sérialiser les objets Java en chaînes au format JSON et les stocker dans Redis. Il peut également être utilisé pour désérialiser les chaînes JSON extraites de Redis en objets Java. Par rapport à Jackson2JsonRedisSerializer, RedisSerializer.json() sérialisera tous les champs des objets Java vers Redis pendant le processus de sérialisation, mais lorsqu'il s'agit d'objets Java complexes, une configuration supplémentaire peut être requise.

Par conséquent, la méthode de sérialisation à choisir dépend du scénario d'utilisation et des besoins spécifiques. Si vous devez gérer des objets Java complexes et qu'un contrôle précis de la sérialisation et de la désérialisation est essentiel, alors Jackson2JsonRedisSerializer est un meilleur choix. Et si les données traitées sont relativement simples ou si vous avez simplement besoin de convertir des objets Java en chaînes au format JSON pour le stockage, alors RedisSerializer.json() peut être plus approprié.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal