# Go and Upstash Redis: redigo over TLS, no official SDK

There is no official Upstash Go SDK. The supported path is any
RESP-speaking Go client over TLS. The docs use redigo:

import "github.com/gomodule/redigo/redis"

func main() {
    c, err := redis.Dial("tcp", "YOUR_ENDPOINT:YOUR_PORT",
        redis.DialUseTLS(true))
    if err != nil {
        panic(err)
    }
    defer c.Close()

    if _, err = c.Do("AUTH", "YOUR_TOKEN"); err != nil {
        panic(err)
    }
    _, err = c.Do("SET", "foo", "bar")
    // ...
}

## Three things Go developers get wrong

1. Skipping TLS. Upstash has TLS on with no off switch. DialUseTLS(true)
   is required, not optional.
2. Looking for a password field in the console. There is none. The token
   shown in the console IS the password. AUTH with the token.
3. Assuming a native SDK exists because Node and Python have one. For Go,
   redigo or go-redis over the RESP endpoint is the documented route.

Replace YOUR_ENDPOINT, YOUR_PORT, and YOUR_TOKEN with the values from
the console Connect tab (TCP section).