使用Redis模式URL连接到Redis服务器

3

我正在尝试连接到一个类似于以下url的Redis服务器。

redis://h:asdfqwer1234asdf@ec2-111-1-1-1.compute-1.amazonaws.com:38799

我尝试使用了两个库,但都无法连接到服务器。我使用了redix.v3go-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

1
请展示代码,并附上错误信息。 - Roman Kiselenko
1
在godoc中有一个示例https://godoc.org/github.com/go-redis/redis#ParseURL - Roman Kiselenko
1个回答

7
你可以在go-redis中使用ParseURL函数。
opt, _ := redis.ParseURL("redis://:qwerty@localhost:6379")
client := redis.NewClient(opt)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接