Golang-Redis
引入 1 go get github.com/redis/go-redis 基础使用 连接 基于配置的连接 1 2 3 4 5 rdb := redis.NewClient(&redis.Options{ Addr: "localhost:6379", Password: "", // 没有密码,默认值 DB: 0, // 默认DB 0 }) 基于URL的连接 1 2 3 4 5 6 opt, err := redis.ParseURL("redis://<user>:<pass>@localhost:6379/<db>") if err != nil { panic(err) } rdb := redis.NewClient(opt) 配置TLS 1 2 3 4 5 6 rdb := redis.NewClient(&redis.Options{ TLSConfig: &tls.Config{ MinVersion: tls.VersionTLS12, ServerName: "你的域名", }, }) 基于SSH 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 sshConfig := &ssh.ClientConfig{ User: "root", Auth: []ssh.AuthMethod{ssh.Password("password")}, HostKeyCallback: ssh.InsecureIgnoreHostKey(), Timeout: 15 * time.Second, } sshClient, err := ssh.Dial("tcp", "remoteIP:22", sshConfig) if err != nil { panic(err) } rdb := redis.NewClient(&redis.Options{ Addr: net.JoinHostPort("127.0.0.1", "6379"), Dialer: func(ctx context.Context, network, addr string) (net.Conn, error) { return sshClient.Dial(network, addr) }, // SSH不支持超时设置,在这里禁用 ReadTimeout: -1, WriteTimeout: -1, }) 上下文 go-redis支持Context,可以使用它控制超时或者传递一些数据,也可以监控go-redis性能。 ...