golang redis 클라이언트를 연결하는 방법

WBOY
풀어 주다: 2023-05-29 09:14:08
앞으로
752명이 탐색했습니다.

연결 풀과 redis 파이프라인을 포함한 redis 클라이언트를 구현합니다

conn.go

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

으아아아


메서드는 요청의 세 가지 프로세스인 Send, Flush 및 Receiver

1를 캡슐화하고, send는 요청을 출력 버퍼

2에 쓰고, Flush는 버퍼 명령을 서버

에 보냅니다. 3, 서버로부터 응답을 받습니다

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

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    }  }
로그인 후 복사

redis는 텍스트 프로토콜이기 때문에 보낼 때는 redis 프로토콜에 따라 직렬화하고, 수신할 때는 redis 프로토콜에 따라 역직렬화해야 합니다.

클라이언트가 보낸 명령의 형식(유형): 5가지 유형

간격 기호는 Linux에서는 rn이고 Windows에서는 n입니다.

1. "+" 더하기 기호로 시작하는 단순 문자열

                                  R2. , "-" 빼기

로 시작 형식: -Wly 오류 서문 오류 메시지 RN

오류 메시지에는 CR 또는 LF가 포함될 수 없습니다(변경이 허용되지 않음). 오류는 단순 문자열과 매우 유사하며 차이점은 ErRos가 예외로 처리됨

예: "-오류 알 수 없는 명령 'foobar'rn"

3. 정수 유형 정수, ":" 콜론으로 시작

형식:: 숫자 rn

예: ":1000rn"

串4 . 큰 문자열 유형 대량 문자열, "$" 미국 달러 기호로 시작, 길이 제한은 512M

형식: $ 문자열의 길이 RN 문자열 RN

문자열은 CR 또는 LF를 포함할 수 없습니다(변경이 허용되지 않음). "$

6

rn

foobar

rn"      여기서 문자열은 foobar이고 6은 foobar의 문자 길이입니다.                                             Null

5. 배열 유형 별표 "*"로 시작하는 배열

형식: * 배열 요소 수 rn 다른 모든 유형(마지막에 rn이 필요하지 않음)

                                                                                                                                                                                                 요소의

0rn" 빈 배열 "*2rn$2rnfoorn$3rnbarrn" 배열에는 2개의 요소가 포함되어 있습니다. string foo and bar

  "*3rn:1rn:2rn:3rn" 배열 3개의 정수 포함: 1, 2, 3

“*5rn:1rn:2rn:3rn:4rn$6rnfoobarrn” 혼합 유형을 포함하는 배열

“* -1rn” Null 배열

“*2rn*3rn :1rn:2rn: 3rn*2rn+Foorn-Barrn" 배열은 중첩되어 있습니다. 외부 배열에는 2개의 배열이 포함되어 있습니다. 정렬 후 다음과 같습니다.

"

위 내용은 golang redis 클라이언트를 연결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿