Implementiert den Redis-Client, einschließlich Verbindungspool und Redis-Pipleline
conn.go
func (c *conn) Do(cmd string , args ...interface{}) (interface{}, Fehler){
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 } }
}
Methode kapselt die drei Prozesse einer Anforderung Senden, Flush und Empfangen
1, Senden Schreiben die Anfrage an den Ausgabepuffer
2, Flush sendet den Pufferbefehl an den Server
3, Receive empfängt die Antwort vom Server
# 🎜🎜#https://godoc.org/github.com/gomodule/redigo/redis#hdr-Pipelining// conn is the low-level implementation of ConnDa Redis ein Textprotokoll ist, muss es beim Senden gemäß dem Redis-Protokoll serialisiert und beim Empfang gemäß dem Redis-Protokoll deserialisiert werden.
1. Einfache Zeichenfolgen, beginnend mit einem „+“-Pluszeichen
Die Zeichenfolge darf weder CR noch LF( Zeilenumbrüche enthalten zulässig)
z. B.: „+OKrn“
Hinweis: Um binärsichere Zeichenfolgen zu senden, wird im Allgemeinen empfohlen, den folgenden Bulk-Strings-Typ zu verwenden
#🎜 🎜#2. Fehler, beginnend mit „-“ MinuszeichenFormat: - Fehlerpräfix Fehlermeldung rn Fehlermeldung darf weder CR noch LF enthalten (Zeilenumbrüche sind möglich). nicht erlaubt) , Fehler sind einfachen Strings sehr ähnlich, außer dass Fehler als Ausnahmen behandelt werden Beispiel: „-Error unknow command 'foobar'rn“3. Ganzzahltyp Ganzzahl, beginnend mit „:“ Doppelpunkt Format: Zahl rn z. B.: „:1000rn“4 Bulk-Strings, beginnend mit „$“-Dollarzeichen, Längenbeschränkung 512M Format: $ String-Länge rn String rn Zeilenumbrüche erlaubt);#🎜🎜 # Beispiel: „$
6rn
foobarrn“, wobei die Zeichenfolge foobar ist und 6 die Zeichenlänge von foobar ist „$0 rnrn" „Leere Zeichenfolge „$-1rn“ „$0rnrn“ null
5. Array-Typ Arrays, beginnend mit „*“ Sternchen
#🎜🎜 # Format: * Anzahl der Array-Elemente rn Alle anderen Typen (rn am Ende nicht erforderlich) Hinweis: Nur der rn nach der Anzahl der Elemente gehört zum Array, die Endung rn ist im Allgemeinen ein Element von z. B.: „*0rn“ Leeres Array „*2rn$2rnfoorn$3rnbarrn“ Das Array enthält 2 Elemente, die Zeichenfolge foo und bar.#
in 3rn | Array mit gemischten Typen "*-1rn" Null-Array "*2rn*3rn:1rn:2rn :3rn*2rn+Foorn-Barrn" Array-Verschachtelung, das äußere Array enthält 2 Arrays, die wie folgt organisiert sind: 2rn+Foorn-Barrn"Das obige ist der detaillierte Inhalt vonSo verbinden Sie den Golang-Redis-Client. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!