Melaksanakan klien redis, termasuk kolam sambungan dan saluran pipleline redis
conn.go
func (c *conn) Do(cmd string, args ...interface { }) (antara muka{}, ralat){
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 } }
}
merangkum tiga proses permintaan: Hantar, Siram dan Terima
1, hantar menulis permintaan kepada penimbal output
2, Flush menghantar arahan penimbal ke pelayan
3, Terima menerima respons daripada pelayan
https://godoc.org/github.com / gomodule/redigo/redis#hdr-Pipelining
// conn is the low-level implementation of Conn
Oleh kerana redis ialah protokol teks, ia perlu bersiri mengikut protokol redis semasa menghantar, dan dinyahsiri mengikut protokol redis apabila menerima.
Simbol selang, iaitu rn di bawah Linux dan n di bawah Windows
Format: + Rentetan rn
Rentetan tidak boleh mengandungi CR atau LF (pemutus baris tidak dibenarkan)
cth : "+OKrn "
Nota: Untuk menghantar rentetan selamat binari, biasanya disyorkan untuk menggunakan jenis Rentetan Pukal berikut
Format: - Ralat awalan Mesej ralat rn
Mesej ralat tidak boleh mengandungi CR atau LF (pemutus baris tidak dibenarkan), Ralat sangat serupa dengan Rentetan Mudah, perbezaannya ialah Ralat akan dianggap sebagai pengecualian
cth: "-Ralat arahan tidak diketahui 'foobar'rn"
Format:: Nombor rn
.cth: ":1000rn"
Format: $ Panjang rentetan rn Rentetan rn <.>
Rentetan tidak boleh mengandungi CR atau LF (Break Line tidak dibenarkan); jenis lain (tidak perlu rn di penghujung) Nota: Hanya rn selepas bilangan elemen kepunyaan tatasusunan, dan rn pengakhiran Secara amnya, ia adalah elemencth : "*0rn" Tatasusunan kosong "*2rn$2rnfoorn$3rnbarrn" Tatasusunan mengandungi 2 elemen, iaitu rentetan foo dan bar
"*3rn:1rn:2rn:3rn" Tatasusunan mengandungi 3 integer: 1, 2, 3 "*5rn:1rn:2rn:3rn:4rn$6rnfoobarrn" Tatasusunan mengandungi jenis bercampur"*-1rn" Tatasusunan Null Tatasusunan "*2rn*3rn:1rn:2rn:3rn*2rn+Foorn-Barrn" Tatasusunan bersarang, dan tatasusunan luar mengandungi 2 tatasusunan, yang disusun seperti berikut : "*2rn *3rn:1rn:2rn:3rn
Atas ialah kandungan terperinci Bagaimana untuk menyambung pelanggan golang redis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!