连接到 Redigo 并在函数内操作数据很容易,但是当您必须重新使用它的连接时就会出现问题,显然是出于性能/实用性的原因。
在这样的函数中执行此操作:
func main() {
client, err := redis.Dial("tcp", ":6379")
if err != nil {
panic(err)
}
defer client.Close()
client.Do("GET", "test:1")
}
但是把它带到外面不会:
var Client = redis.Dial("tcp", ":6379")
defer Client.Close()
func main() {
Client.Do("GET", "test:1")
}
返回以下错误:
./main.go:1: multiple-value redis.Dial() in single-value context
./main.go:2: non-declaration statement outside function body
我尝试将连接设置为const (ant),将defer放在 main 函数中,令我沮丧的是也无法正常工作。
这是一个更大的问题,因为我有许多其他功能必须与 Redis 通信,但每次都重新创建与 Redis 的连接似乎很愚蠢。
Redigo API 仅展示了如何创建Dial实例,但没有进一步解释如何重用它。
您可能在我的演讲中迷失了方向,但我想在这里提供一些背景信息,所以我的清晰简洁的问题是:您如何重新使用(而不是每次都重新创建)Redigo 连接?