Maison  >  Article  >  base de données  >  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
WBOYavant
2023-05-30 20:26:001190parcourir

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());

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));

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer