Go语言连接Redis的基本操作和连接池
package main
import (
"fmt"
"github.com/go-redis/redis"
"time"
)
// 初始化Redis连接池
func newRedisPool(addr string, db int, password string) *redis.Pool {
return &redis.Pool{
MaxIdle: 3,
IdleTimeout: 240 * time.Second,
Dial: func() (redis.Conn, error) {
c, err := redis.Dial("tcp", addr,
redis.DialDatabase(db),
redis.DialPassword(password),
)
if err != nil {
return nil, err
}
return c, nil
},
TestOnBorrow: func(c redis.Conn, t time.Time) error {
_, err := c.Do("PING")
return err
},
}
}
func main() {
// 假设Redis运行在本地,默认数据库,无密码
pool := newRedisPool("localhost:6379", 0, "")
conn := pool.Get()
defer conn.Close()
_, err := conn.Do("SET", "mykey", "superWang")
if err != nil {
fmt.Println("Error:", err)
return
}
username, err := redis.String(conn.Do("GET", "mykey"))
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Printf("Get mykey: %v \n", username)
}
这段代码首先定义了一个新的Redis连接池的函数newRedisPool
,它接受地址、数据库编号和密码作为参数。然后在main
函数中创建了一个连接池,获取了一个连接,执行了SET和GET操作,并打印了结果。这个例子展示了如何使用Go语言操作Redis,并通过连接池来管理Redis连接。
评论已关闭