golang中redis连接池
时间: 2023-11-06 08:54:19 浏览: 49
在Golang中,可以使用连接池来与Redis建立连接。连接池帮助我们管理连接的建立、复用和回收。在Go语言中,可以使用第三方库`github.com/garyburd/redigo/redis`来连接Redis,并使用连接池来管理连接。
下面是一个使用连接池连接Redis的示例代码:
```go
package main
import (
"fmt"
"github.com/garyburd/redigo/redis"
)
var pool *redis.Pool
func init() {
pool = &redis.Pool{
MaxIdle: 8, // 最大空闲连接数
MaxActive: 0, // 和数据库的最大连接数,0 表示没有限制
IdleTimeout: 100, // 最大空闲时间
Dial: func() (redis.Conn, error) {
// 初始化连接的代码
return redis.Dial("tcp", "localhost:6379")
},
}
}
func main() {
// 从 pool 中取出一个连接
conn := pool.Get()
defer conn.Close()
// 向Redis写入一个数据
_, err := conn.Do("Set", "name", "Rose")
if err != nil {
fmt.Println("conn.Do err is", err)
return
}
// 从Redis读取数据
r, err := redis.String(conn.Do("Get", "name"))
if err != nil {
fmt.Println("conn.DO Get err is", err)
return
}
fmt.Println("The name is", r)
}
```
在上面的示例代码中,我们首先初始化了一个连接池,并设置了最大空闲连接数、最大活跃连接数和最大空闲时间。然后,在`main`函数中,我们从连接池获取一个连接,并在使用完毕后将连接还给连接池。我们可以使用`conn.Do`方法来执行Redis的命令,如`Set`和`Get`。