Я пытаюсь подключиться к серверу Redis, который размещен на URL-адресе, подобном следующему.
redis://h:asdfqwer1234asdf@ec2-111-1-1-1.compute-1.amazonaws.com:38799
Я пытался использовать 2 библиотеки, и ни одна из них не смоглаподключиться к серверу.Я использовал redix.v3 и go-redis .
С redix.v3
я получаю сообщение об ошибке при использовании вышеуказанного URL-адреса.
На go-redis
Я получил сообщение об ошибке, что в URL слишком много двоеточий, и я попытался использовать этот URL [redis://h:asdfqwer1234asdf@ec2-111-1-1-1.compute-1.amazonaws.com]:38799
, который был предложен в некотором посте.
Все еще не повезло.Кто-нибудь успешно подключился к серверу Redis?
Код и ошибка для redix.v3
func main() {
fmt.Println("running")
client, err := radix.NewPool("tcp", "redis://h:asdfqwer1234asdf@ec2-111-1-1-1.compute-1.amazonaws.com:38799", 10)
if err != nil {
// handle error
}
var fooVal string
err = client.Do(radix.Cmd(&fooVal, "SET", "foo", "hello"))
fmt.Println(err, fooVal)
}
Ошибка:
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x4f2b7e]
goroutine 1 [running]:
github.com/mediocregopher/radix%2ev3.(*Pool).getExisting(0x0, 0x0, 0x0, 0x0)
/home/aks/go/src/github.com/mediocregopher/radix.v3/pool.go:365 +0x4e
github.com/mediocregopher/radix%2ev3.(*Pool).get(0x0, 0x40aa78, 0x51afe0, 0x525120)
/home/aks/go/src/github.com/mediocregopher/radix.v3/pool.go:403 +0x2f
github.com/mediocregopher/radix%2ev3.(*Pool).Do(0x0, 0x7f6478467fd0, 0xc0000e2070, 0x0, 0x0)
/home/aks/go/src/github.com/mediocregopher/radix.v3/pool.go:440 +0x37
main.main()
/home/aks/hello.go:17 +0x19e
exit status 2
Код и ошибка для go-redis
client := redis.NewClient(&redis.Options{
Addr: "redis://h:asdfqwer1234asdf@ec2-111-1-1-1.compute-1.amazonaws.com:38799",
Password: "", // no password set
DB: 0, // use default DB
})
// setup eviction policy on the redis client
client.ConfigSet("maxmemory", Config.RedisMaxMemory)
client.ConfigSet("maxmemory-policy", "allkeys-lru")
_, err := client.Ping().Result()
if err != nil {
log.Println("Redis: failed to connect", err)
} else {
log.Println("Redis: connected")
}
Ошибка:
2018/10/08 10:57:29 Redis: failed to connect dial tcp: address redis://h:asdfqwer1234asdf@ec2-111-1-1-1.compute-1.amazonaws.com:38799: too many colons in address