Maison > base de données > Redis > le corps du texte

Comment connecter le client Golang Redis

WBOY
Libérer: 2023-05-29 09:14:08
avant
752 Les gens l'ont consulté

Implémente le client Redis, y compris un pool de connexions et un pipeline Redis

conn.go

func (c *conn) Do(cmd string, args ...interface{}) (interface{}, erreur){

if cmd != "" {    if err := c.writeCommand(cmd, args); err != nil {      return nil, c.fatal(err)    }  }    if err := c.bw.Flush(); err != nil {    return nil, c.fatal(err)  }      for i := 0; i <= pending; i++ {    var e error    if reply, e = c.readReply(); e != nil {      return nil, c.fatal(e)    }    if e, ok := reply.(Error); ok && err == nil {      err = e    }  }
Copier après la connexion
La méthode


encapsule les trois processus d'une requête : Envoyer, Flush et Recevoir

1, send écrit la requête dans le tampon de sortie

2 et Flush envoie la commande buffer au serveur

3 , Recevoir reçoit la réponse du serveur

https://godoc.org/github.com/gomodule/redigo/redis#hdr-Pipelining

// conn is the low-level implementation of Conn
Copier après la connexion

Étant donné que Redis est un protocole texte, il doit être sérialisé selon le protocole Redis lors de l'envoi et désérialisé selon le protocole Redis lors de la réception.

Le format (type) de la commande envoyée par le client : 5 types

Le symbole d'intervalle est rn sous Linux et n sous Windows

1 Chaînes simples, commençant par le signe "+" plus

                                      .                                                                                Erreurs R2. , commencez par le "-" moins

Format : -Wly error prelude error message RN

le message d'erreur ne peut pas inclure CR ou LF (ne peut pas être modifié), les erreurs sont très similaires aux chaînes simples, la différence est qu'ErRos le fera Traité comme une exception

par exemple : "-Erreur commande inconnue 'foobar'rn"

3. Type entier Integer, commençant par ":" deux-points

Format : Numéro rn

par exemple : ":1000rn"

串4 . Chaînes en vrac de type grande chaîne, commençant par le symbole du dollar américain "$", limite de longueur limitée à 512 M

format : longueur de la chaîne $ chaîne RN La chaîne RN

ne peut pas inclure CR ou LF (ne peut pas être modifiée) ; "$

6

rn

foobar

rn"                                                                                      où la chaîne est foobar, et "6 est la longueur de caractère de foobar                                Null

5. Type de tableau Tableaux, commençant par l'étoile "*":*Tous les types d'éléments de tableau Rn autres types (pas de RN)

Remarque : seul le RN après le nombre d'éléments appartient au tableau, et le RN de fin est généralement généralement celui de l'élément RN

par exemple : "*0rn" Tableau vide

"*. 2rn$2rnfoorn$3rnbarrn" Le tableau contient 2 éléments, qui sont la chaîne foo et bar  "*3rn:1rn:2rn:3rn" Tableau Contient 3 entiers : 1, 2, 3

« *5rn:1rn:2rn :3rn:4rn$6rnfoobarrn" Tableau contenant des types mixtes

"*-1rn" Tableau nul

"*2rn*3rn :1rn:2rn: 3rn*2rn+Foorn-Barrn" Les tableaux sont imbriqués. Le tableau externe contient 2 tableaux . Après tri, ils sont les suivants :

"

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