Maison base de données Redis Comment sérialiser Redisson

Comment sérialiser Redisson

Nov 27, 2019 am 10:00 AM
redisson

Comment sérialiser Redisson

Redisson est une grille de données basée sur la mémoire Java implémentée sur la base de Redis. Comparée à Jedis, qui expose les opérations sous-jacentes, Redisson. fournit une série d'objets communs Java distribués et fournit également de nombreux services distribués. (Apprentissage recommandé : Tutoriel vidéo Redis)

Sérialisation

La classe d'encodage d'objet de Redisson est utilisée pour convertir des objets Effectuer la sérialisation et désérialisation pour lire et stocker l'objet dans Redis.

L'encodeur par défaut de Redisson est JsonJacksonCodec. Lorsque JsonJackson sérialise des objets avec des références bidirectionnelles, une exception de boucle infinie se produit. Une fois que fastjson a extrait la double référence, il la remplacera automatiquement par le caractère de référence $ref et terminera le cycle.

Dans mon cas, j'ai sérialisé un service. Ce service a été hébergé par Spring, et il est également injecté les uns dans les autres avec un autre service. Fastjson peut être sérialisé vers Redis normalement, tandis que JsonJackson peut lancer une exception de boucle infinie. .

Afin de rendre visible le contenu sérialisé, il n'est pas nécessaire d'utiliser les autres encodeurs binaires intégrés de redission et d'implémenter l'encodeur par vous-même :

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufAllocator;
import io.netty.buffer.ByteBufInputStream;
import io.netty.buffer.ByteBufOutputStream;
import org.redisson.client.codec.BaseCodec;
import org.redisson.client.protocol.Decoder;
import org.redisson.client.protocol.Encoder;

import java.io.IOException;

public class FastjsonCodec extends BaseCodec {

 private final Encoder encoder = in -> {
 ByteBuf out = ByteBufAllocator.DEFAULT.buffer();
 try {
 ByteBufOutputStream os = new ByteBufOutputStream(out);
 JSON.writeJSONString(os, in,SerializerFeature.WriteClassName);
 return os.buffer();
 } catch (IOException e) {
 out.release();
 throw e;
 } catch (Exception e) {
 out.release();
 throw new IOException(e);
 }
 };

 private final Decoder<Object> decoder = (buf, state) ->
 JSON.parseObject(new ByteBufInputStream(buf), Object.class);

 @Override
 public Decoder<Object> getValueDecoder() {
 return decoder;
 }

 @Override
 public Encoder getValueEncoder() {
 return encoder;
 }
}
Copier après la connexion

Plus de Redis articles techniques connexes, veuillez visiter la colonne Tutoriel de démarrage de Redis pour apprendre !

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment SpringBoot intègre Redisson pour implémenter la file d'attente différée Comment SpringBoot intègre Redisson pour implémenter la file d'attente différée May 30, 2023 pm 02:40 PM

Scénario d'utilisation 1. La commande a été passée avec succès mais le paiement n'a pas été effectué dans les 30 minutes. Le paiement a expiré et la commande a été automatiquement annulée 2. La commande a été signée et aucune évaluation n'a été effectuée pendant 7 jours après la signature. Si la commande expire et n'est pas évaluée, le système donne par défaut une note positive. 3. La commande est passée avec succès. Si le commerçant ne reçoit pas la commande pendant 5 minutes, la commande est annulée. 4. Le délai de livraison expire et. un rappel par SMS est envoyé... Pour les scénarios avec des délais longs et de faibles performances en temps réel, nous pouvons utiliser la planification des tâches pour effectuer un traitement d'interrogation régulier. Par exemple : xxl-job Aujourd'hui, nous allons choisir

Analyse d'un exemple de configuration Java Redis Redisson Analyse d'un exemple de configuration Java Redis Redisson Apr 25, 2023 am 08:19 AM

Fichier Mavenorg.springframework.bootspring-boot-starter-data-redisio.lettucelettuce-coreredis.clientsjedisorg.springframework.sessionspring-session-data-redisorg.redissonredisson3.17.5application-redis.ymlspring:redis:host:106.12.174.220port : 6379mot de passe

La solution reine parmi les serrures distribuées - Redisson La solution reine parmi les serrures distribuées - Redisson Aug 24, 2023 pm 03:31 PM

Si vous avez déjà utilisé Redis, vous obtiendrez deux fois le résultat avec la moitié de l'effort en utilisant Redisson, qui constitue le moyen le plus simple et le plus pratique d'utiliser Redis. Le but de Redisson est de promouvoir la séparation des préoccupations des utilisateurs (Separation of Concern) de Redis, afin que les utilisateurs puissent se concentrer davantage sur le traitement de la logique métier.

En savoir plus sur la technologie de mise en cache Redisson En savoir plus sur la technologie de mise en cache Redisson Jun 21, 2023 am 09:54 AM

Redisson est une solution de mise en cache basée sur Redis pour les applications Java. Il fournit de nombreuses fonctionnalités utiles qui rendent l'utilisation de Redis comme cache dans les applications Java plus pratique et efficace. Les fonctions de mise en cache fournies par Redisson incluent : 1. Cartographie distribuée (Map) : Redisson fournit des API pour créer des cartes distribuées. Ces cartes peuvent contenir des paires clé-valeur, des entrées de hachage ou des objets, et elles peuvent prendre en charge le partage entre plusieurs nœuds.

Les différences et scénarios d'utilisation entre les frameworks Redis et Redisson Les différences et scénarios d'utilisation entre les frameworks Redis et Redisson May 11, 2023 pm 03:40 PM

Redis et Redisson sont deux outils importants dans le stockage de données moderne en mémoire et le stockage de données distribué. Redis est une base de données open source en mémoire qui prend en charge différentes structures de données telles que des chaînes, des listes, des tables de hachage, des ensembles, etc. Redisson est un framework de services de données distribués écrit en langage Java, qui peut facilement mapper des objets Java au stockage distribué. Redis et Redisson ont les mêmes scénarios d'utilisation, tels que : Mise en cache : Redis et R

Utilisation de Redisson pour le traitement des verrous distribués dans le développement d'API Java Utilisation de Redisson pour le traitement des verrous distribués dans le développement d'API Java Jun 17, 2023 pm 09:08 PM

Avec le développement continu de la technologie Internet et la diversification des scénarios d'application, les applications distribuées sont devenues la norme pour les applications Internet modernes. Dans les applications distribuées, afin de coordonner la synchronisation des données et la collaboration entre les nœuds, un mécanisme de verrouillage distribué doit être utilisé. Redisson est un framework de verrouillage distribué basé sur la technologie Redis. Il fournit une API simple et facile à utiliser pour permettre aux développeurs Java d'utiliser des verrous distribués dans le développement. Cet article présente principalement l'utilisation de Redisson pour le traitement des verrous distribués dans le développement d'API Java.

Développement backend Java : utilisation de Redisson pour implémenter des verrous d'API distribués Développement backend Java : utilisation de Redisson pour implémenter des verrous d'API distribués Jun 17, 2023 am 10:40 AM

À mesure que les applications Internet continuent de croître et que le nombre d'utilisateurs continue d'augmenter, la demande de systèmes distribués ne cesse de croître. Afin d’assurer la stabilité et la cohérence des données des systèmes distribués, l’utilisation de verrous est essentielle. Cependant, dans les systèmes distribués, la mise en œuvre de verrous est difficile et complexe. Les méthodes traditionnelles de mise en œuvre de verrous sont difficiles à répondre aux exigences de haute concurrence et de haute disponibilité. Par conséquent, cet article présentera comment utiliser Redisson pour implémenter des verrous d'API distribués afin de résoudre les problèmes de verrouillage dans les systèmes distribués. Redisson est une implémentation basée sur Redis

Comment Spring Boot intègre Redisson Comment Spring Boot intègre Redisson May 14, 2023 pm 07:46 PM

Intégration et précautions Redisson prend en charge l'environnement Redis, autonome, cluster, sentinelle, cloud, etc. Ici, je vais parler de ce à quoi vous devez faire attention en mode cluster. Redisson détectera si le nœud maître/esclave est normal au démarrage. De manière générale, il n'y a pas de problème avec 3 fragments, 3 maîtres et 3 esclaves. Cependant, si l'environnement de test comporte 1 fragment, 1 maître et 1 esclave, ou qu'aucun des 3 maîtres ne peut être démarré. Outre l’environnement, il faut également faire attention à la compatibilité avec ou sans mots de passe. Injectez manuellement la configuration redisson. Généralement, l'environnement de production dispose d'un mot de passe. S'il existe un mot de passe, il est recommandé d'injecter manuellement la configuration Redisson sans utiliser Springboot pour vous aider à l'intégrer, car Springboot risque de ne pas pouvoir reconnaître le mot de passe.

See all articles