


Comment résoudre le problème de conversion de type user_id lors de l'utilisation du flux redis pour implémenter les files d'attente de messages dans le langage Go?
GO Redis Stream Message Fitre: Résolu intelligemment le problème de conversion de type user_id
Lors de la création de files d'attente de messages à l'aide de GO et de Redis Stream, les problèmes de conversion des types entiers tels que user_id
affligent souvent les développeurs. Cet article explorera ce problème en profondeur et fournira des solutions efficaces.
Supposons que votre application ait besoin d'écrire des données contenant user_id
(type entier) dans Redis Stream. Vous pouvez rencontrer les problèmes suivants:
Description de la question:
Après avoir écrit directement sur Redis Stream, user_id
devient un type de chaîne lors de la lecture. Par exemple:
Écrire: xadd mystream * user_id 123
Lire: xread block 0 streams mystream $
( user_id
est la chaîne "123")
Analyse des causes:
Redis est une chaîne dans le stockage sous-jacent de toutes les données. Même si vous écrivez un entier, Redis le convertira en un stockage de chaîne. Par conséquent, ce que vous obtenez naturellement lors de la lecture, c'est le type de chaîne.
Solution: sérialisation et désérialisation
Pour maintenir l'intégrité du type de données, nous devons sérialiser avant d'écrire sur Redis et désérialiser après la lecture. Il est recommandé d'utiliser JSON pour la sérialisation et la désérialisation.
Voici un exemple de code qui montre comment résoudre ce problème à l'aide de JSON:
package principal importer ( "Encodage / JSON" "FMT" "github.com/go-redis/redis/v8" ) Tapez le message Struct { UserId int `json:" user_id "` // ... Autres champs } func main () { Client: = redis.newclient (& redis.options { Addr: "localhost: 6379", }) // Message de données d'écriture: = message {userId: 123} JSONDATA, ERR: = JSON.MARSHAL (Message) Si err! = Nil { panique (euh) } err = client.xadd (& redis.xaddargs { Stream: "mystream", VALEURS: Map [String] Interface {} { "Données": JSONDATA, // Stocker les données JSON en valeur}, }).Se tromper() Si err! = Nil { panique (euh) } // Lire Data Stream, err: = client.xread (& redis.xreadargs { Streams: [] String {"MyStream", "0"}, Bloc: 0, }).Résultat() Si err! = Nil { panique (euh) } pour _, message: = range stream [0] .Messages { Message Var ReçuSage JSON.UNMARSHAL ([] BYTE (Message.Values ["Data"]. (String)), & ReçuMessage) // Desérialize JSON Data FMT.Printf ("ID utilisateur reçu:% D \ N", ReçuSage.Userid) } }
Ce code sérialise d'abord la structure Message
en une chaîne JSON, puis stocke la chaîne JSON dans un flux redis. Lors de la lecture, désérialisez la chaîne JSON à la structure Message
, restaurant ainsi le type entier de user_id
. Cela garantit la cohérence du type des données pendant le stockage et la lecture dans Redis. J'espère que cet exemple peut vous aider à résoudre efficacement le problème de conversion de type dans la file d'attente de messages GO Redis Stream.
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

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

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

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Contenu Quel est Lumoz (Moz Token) Comment Lumoz (Moz) fonctionne 1. Défilé de couche de blockchain modulaire et historique des caractéristiques Lumoz de Moz Token Pratiquement Prix de Moz Token History of Moz Token Eamocs Présentation Lumoz Prix Lumoz 2025 Prix Prix Lumoz 2026-2031 Prix de prix LUMOZ 2031-2036 Prévisions de prix Prévisions de prix LuMoz 2031-2036 Solutions d'extension. Cependant, L2 ne gère pas efficacement de nombreuses ressources matérielles, y compris la disponibilité des données, ZKP (Zero Knowledge Proof)

Points clés du catalogue: La stratégie haussée du Bitcoin se défend faiblement en dessous de 114 000 $. Les tendances et les performances des actions technologiques de la Fed pourraient dominer la tendance future du bitcoin. La date d'expiration de l'option Bitcoin approche, et le secteur technologique est sous pression peut révéler si le retrait actuel est une suspension d'un marché haussier ou le début d'un renversement de tendance. Points clés: Bitcoin Short Side a un avantage inférieur à 114 000 $, et la pression à la baisse peut encore augmenter à mesure que la date d'expiration de l'option approche. Les préoccupations du marché concernant les dépenses en capital dans le domaine de l'intelligence artificielle (IA) ont augmenté la volatilité aggravée sur le marché financier global et affaibli l'attractivité des actifs risqués. L'option Bitcoin (BTC) de 13,8 milliards de dollars expirera de manière concentrée le 29 août. Le marché accorde une attention particulière à ce nœud pour déterminer si la baisse précédente de 9,7% est courte.

Répertoire Qu'est-ce que Duckchain (canard)? Les objectifs de Duckchain et la vision du jeton de canard économie de canard Plan de sortie de jetons de canard $ Utilisation des jetons de canard Les facteurs qui affectent le prix du prix du canard (Duck) Duckchain (canard) 2025-2030 Prévisions de prix 1. 2025 Prix de prix 2. 2030 Prix Prévision de Duckchain (Duck) 2025-2030

Contenu Qu'est-ce que Cronos (CRO) Combien de pièces de crocro y a-t-il des fonctions principales CRO et Solana Comparaison de l'équipe technique derrière CRO et les nouvelles et les événements importants sont CRO un bon investissement CRO prévoient des prix à long terme CRO2031-2036 Prévision des prix FAQ CRONOS (CRO) Le projet est bien connu pour sa position à l'intersection des blockchains Ethereum et Cosmos. Comme base

Une baleine géante qui contrôle plus de 11 milliards de dollars d'actifs bitcoin se retire progressivement de sa position de dérivés Ethereum précédemment établie et change ses fonds pour repérer Ethereum, avec une échelle d'achat de centaines de millions de dollars, montrant une forte confiance dans la tendance des prix futurs de l'ETH. Selon Cintelelegraph, la baleine géante a vendu 22 769 Bitcoins (BTC) la semaine dernière, encaissant environ 2,59 milliards de dollars, puis a utilisé le produit pour acheter 472 920 Spot Ethereum (ETH), et a établi une position de 577 millions de dollars sur la plate-forme de négociation décentralisée hyperquide. Source: LookonChain Selon la plate-forme d'analyse des données blockchain Lookonchain, le

Table des matières Quelles sont les dernières nouvelles et mises à jour des pièces BAS? Qu'est-ce que Bas Coin introduit par l'équipe de développement des services de certification BNB? BAS Token Economics BNB Certification Service (BAS) Price Forecast 2025–2030BNB Certification Service (BAS) Price Forecast Bollinger Bands and Momentum Indicators BNB Certification Service (BAS) Price Forecast 2025–2030BNB Certification Service (BAS) Price Forecast 2026 Price Forecast BNB Certification Service (BAS) Price Forecast

2 septembre News, récemment, Antutu a publié le classement des performances des téléphones phares d'Android en août, et la Snapdragon 8 Supreme Edition and Dimensity 9400 a toujours dominé la liste. La liste montre que le Red Magic 10Spro est toujours le téléphone de jeu le plus fort à l'heure actuelle, se classant d'abord avec un score exécutif moyen de 2947567. Le Red Magic 10Spro est équipé d'un processeur de premier plan suprême Snapdragon 8, et son processeur adopte une architecture haute performance. La fréquence centrale super-large monte à 4,47 GHz, offrant une puissance de calcul puissante pour les téléphones mobiles. De plus, la combinaison supérieure de la mémoire LPDDR5T et de la mémoire flash UFS4.1pro, elle a une finesse extrêmement. La deuxième place est Vivox200ultra, avec un score de course moyen de 2899541, et est équipé de Snapdragon 8 Supreme Edition. Bien que le téléphone se concentre sur l'imagerie, ses performances sont également publiées.

Qu'est-ce que Cat (Simon'scat)? Comment fonctionne Simon’scat? La mission et la vision d'origine de Simon'scat et les autres fonctionnalités uniques comparatives de Memecoin et la participation de la communauté Simon's Simon's Principaux Produits Cat's Cat's Token Economic Token Mode économique Pratiques et récompenser les conditions actuelles du marché et les prix Facteurs influençant le prix de Cat (Simon'scat) est Simon'scat un bon investissement? Cat (Simon & # 39;
