ホームページ  >  記事  >  データベース  >  golang redisクライアントに接続する方法

golang redisクライアントに接続する方法

WBOY
WBOY転載
2023-05-29 09:14:08748ブラウズ

接続プールと redis パイプラインを含む redis クライアントを実装しました

conn.go

func (c *conn) Do(cmd string, args ...interface { }) (インターフェース{}、エラー){

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


#メソッドは、リクエストの 3 つのプロセス (送信、フラッシュ、受信) をカプセル化します。

1、送信はリクエストを出力に書き込みます。 buffer

2、Flushはバッファコマンドをサーバーに送信します

3、Receiveはサーバーからの応答を受信します

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

// conn is the low-level implementation of Conn

redis はテキスト プロトコルであるため、送信時には redis プロトコルに従ってシリアル化し、受信時には redis プロトコルに従って逆シリアル化する必要があります。

#クライアントが送信するコマンドの形式 (種類): 5 種類

間隔記号は、Linux では \r\n、Windows では \n

# です。 ##1. " " と記号で始まる単純な文字列

形式: 文字列\r\n

文字列には CR または LF を含めることはできません (改行は許可されません)

例: " OK\r\n"

注: バイナリセーフ文字列を送信するには、通常、次のバルク文字列タイプ

2 を使用することをお勧めします。エラー、" -"マイナス記号で始まります

形式: - エラー プレフィックス エラー メッセージ \r\n

エラー メッセージには CR または LF を含めることはできません (改行は許可されません)。エラーは次のようなものと非常に似ています。単純な文字列。異なるエラーは例外として扱われます。

例: "-Error unknown command 'foobar'\r\n"

3. 整数型 整数。「:」コロンで始まります。

形式:: 数値 \r\n

例: ":1000\r\n"

4. "$" で始まる大きな文字列タイプのバルク文字列ドル記号、長さ制限 512M

形式: $ 文字列の長さ \r\n 文字列 \r\n

文字列には CR または LF を含めることはできません (改行は許可されません);

例: "$

6

\r\nfoobar\r\n" 文字列は foobar、6 は foobar " $0 \r\n\r\n" " 空の文字列

"$-1\r\n" "$-1\r\n" null

5. 配列型 配列、 "*" アスタリスクで始まる

形式: * 配列要素の数 \r\n 他のすべての型 (末尾の \r\n は不要)

注: \r のみ\n 配列に属する要素の数の後、最後の \r\n は通常要素の

です。例: "*0\r\n" 空の配列

"*2\r\n$2\r\nfoo\r\n $3\r\nbar\r\n" 配列には、文字列 foo と bar

の 2 つの要素が含まれています。 "*3\r \n:1\r\n:2\r\n:3 \r\n" " 配列には 3 つの整数が含まれています: 1、2、3

"*5\r\n:1\r \n:2\r\n:3\r\n:4\ r\n$6\r\nfoobar\r\n" 混合型を含む配列

"*-1\r\n" " Null 配列

"*2\r\n*3 \r\n:1\r\n:2\r\n:3\r\n*2\r\n Foo\r\n -Bar\r\n" ネストされた配列。次のように並べ替えると、外側の配列には 2 つの配列が含まれます:

"*2\r\n

*3\r\n:1\ r\n:2\r\n:3\r\n

*2\r\n Foo\r\n-Bar\r\n"

以上がgolang redisクライアントに接続する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。