您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

golang redis客户端怎么连接

2024/3/16 6:43:44发布26次查看
实现了redis客户端,包括一个连接池和redis pipleline
conn.go
func (c *conn) do(cmd string, args ...interface{}) (interface{}, error){
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个过程 send, flush and receive
1,send 将请求写到输出缓冲
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. 简单字符串 simple strings, 以 +加号 开头      格式:+ 字符串 \r\n
               字符串不能包含 cr或者 lf(不允许换行)
      eg: +ok\r\n
      注意:为了发送二进制安全的字符串,一般推荐使用后面的 bulk strings类型
2. 错误 errors, 以-减号 开头格式:- 错误前缀 错误信息 \r\n
               错误信息不能包含 cr或者 lf(不允许换行),errors与simple strings很相似,不同的是erros会被当作异常来看待
      eg: -error unknow command 'foobar'\r\n
3. 整数型 integer, 以 : 冒号开头格式:: 数字 \r\n
      eg: :1000\r\n
4. 大字符串类型 bulk strings, 以 $美元符号开头,长度限制512m格式:$ 字符串的长度 \r\n 字符串 \r\n
               字符串不能包含 cr或者 lf(不允许换行);
      eg: $6\r\nfoobar\r\n    其中字符串为 foobar,而6就是foobar的字符长度
            $0\r\n\r\n       空字符串
            $-1\r\n           null
5. 数组类型 arrays,以 *星号开头格式:* 数组元素个数 \r\n 其他所有类型 (结尾不需要\r\n)
             注意:只有元素个数后面的\r\n是属于该数组的,结尾的\r\n一般是元素的
      eg: *0\r\n      空数组
           *2\r\n$2\r\nfoo\r\n$3\r\nbar\r\n      数组包含2个元素,分别是字符串foo和bar
*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客户端怎么连接的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product