如何使用golang实现一个redis的telnet交互程序

该代码实例只是一个引子,并未实现交互,差一个循环输入,读取用户交互输入的实现。

实现步骤

  1. 首先我们需要创建一个redis的连接net.Dial, 协议是tcp,端口6380。
  2. defer conn.Close() 延迟关闭连接
  3. 接下来我们需要做的事情就是发送数据和读取数据func (conn RedisConn) Command(cmd []byte) ([]byte, error)

代码实例

package main

import (
    "bufio"
    "fmt"
    "net"
    "sync"
    "unsafe"
)

type RedisConn struct {
    RedisConn net.Conn
}

func (conn RedisConn) Command(cmd []byte) ([]byte, error) {
    if _, err := conn.RedisConn.Write(cmd); err != nil {
        panic(err)
    }
    reader := bufio.NewReader(conn.RedisConn)
    buffer, _, err := reader.ReadLine()
    if err != nil {
        return nil, err
    }
    return buffer, nil
}

func main() {

    conn, err := net.Dial("tcp", "192.168.1.18:6380")
    if err != nil {
        panic(err)
    }
    redis := RedisConn{
        RedisConn: conn,
    }

    defer conn.Close()

    if result, err := redis.Command([]byte("Ping\n")); err == nil {
        fmt.Println(string(result))
    }

    if result, err := redis.Command([]byte("set test 2\n")); err == nil {
        fmt.Println(string(result))
    }

    if result, err := redis.Command([]byte("get test\n")); err == nil {
        fmt.Println(string(result))
    }
}

0 comments

To reply to the article, please Login or registered