Maison  >  Article  >  base de données  >  Comment connecter le client Golang Redis

Comment connecter le client Golang Redis

WBOY
WBOYavant
2023-05-29 09:14:08725parcourir

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

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

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