mirror of https://github.com/tidwall/redcon.git
67 lines
1.6 KiB
Go
67 lines
1.6 KiB
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"crypto/tls"
|
||
|
"crypto/x509"
|
||
|
"fmt"
|
||
|
"log"
|
||
|
|
||
|
"github.com/garyburd/redigo/redis"
|
||
|
)
|
||
|
|
||
|
const rootCert = `-----BEGIN CERTIFICATE-----
|
||
|
MIIB+TCCAZ+gAwIBAgIJAL05LKXo6PrrMAoGCCqGSM49BAMCMFkxCzAJBgNVBAYT
|
||
|
AkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRn
|
||
|
aXRzIFB0eSBMdGQxEjAQBgNVBAMMCWxvY2FsaG9zdDAeFw0xNTEyMDgxNDAxMTNa
|
||
|
Fw0yNTEyMDUxNDAxMTNaMFkxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0
|
||
|
YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxEjAQBgNVBAMM
|
||
|
CWxvY2FsaG9zdDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABHGaaHVod0hLOR4d
|
||
|
66xIrtS2TmEmjSFjt+DIEcb6sM9RTKS8TZcdBnEqq8YT7m2sKbV+TEq9Nn7d9pHz
|
||
|
pWG2heWjUDBOMB0GA1UdDgQWBBR0fqrecDJ44D/fiYJiOeBzfoqEijAfBgNVHSME
|
||
|
GDAWgBR0fqrecDJ44D/fiYJiOeBzfoqEijAMBgNVHRMEBTADAQH/MAoGCCqGSM49
|
||
|
BAMCA0gAMEUCIEKzVMF3JqjQjuM2rX7Rx8hancI5KJhwfeKu1xbyR7XaAiEA2UT7
|
||
|
1xOP035EcraRmWPe7tO0LpXgMxlh2VItpc2uc2w=
|
||
|
-----END CERTIFICATE-----
|
||
|
`
|
||
|
|
||
|
var addr = ":6380"
|
||
|
|
||
|
func main() {
|
||
|
roots := x509.NewCertPool()
|
||
|
ok := roots.AppendCertsFromPEM([]byte(rootCert))
|
||
|
|
||
|
if !ok {
|
||
|
log.Fatal("failed to parse root certificate")
|
||
|
}
|
||
|
|
||
|
config := &tls.Config{RootCAs: roots, ServerName: "localhost"}
|
||
|
dialOptions := redis.DialTLSConfig(config)
|
||
|
|
||
|
conn, err := redis.Dial("tcp", addr, dialOptions)
|
||
|
if err != nil {
|
||
|
log.Fatal(err)
|
||
|
}
|
||
|
defer conn.Close()
|
||
|
|
||
|
reply, err := conn.Do("PING")
|
||
|
if err != nil {
|
||
|
log.Fatal(err)
|
||
|
}
|
||
|
fmt.Println(reply)
|
||
|
// Output: PONG
|
||
|
|
||
|
reply, err = conn.Do("SET", "key", "hello world")
|
||
|
if err != nil {
|
||
|
log.Fatal(err)
|
||
|
}
|
||
|
fmt.Println(reply)
|
||
|
// Output: OK
|
||
|
|
||
|
reply, err = conn.Do("GET", "key")
|
||
|
if err != nil {
|
||
|
log.Fatal(err)
|
||
|
}
|
||
|
fmt.Println(string(reply.([]byte)))
|
||
|
// Output: hello world
|
||
|
}
|