为了账号安全,请及时绑定邮箱和手机立即绑定

Golang:在 Redigo 的 RedisPool 上选择数据库

Golang:在 Redigo 的 RedisPool 上选择数据库

Go
LEATH 2021-08-16 15:59:39
使用 redigo,我创建了一个池,如下所示:&redis.Pool{    MaxIdle:   80,    MaxActive: 12000, // max number of connections    Dial: func() (redis.Conn, error) {        c, err := redis.Dial("tcp", host+":"+port)        if err != nil {            panic(err.Error())        }        return c, err    }我遇到的问题是,每次获得新连接时,我都需要设置数据库,因为我使用不同的 redis 数据库,因为我在 VPS 上托管了许多站点。所以,像这样:conn := pool.Get()defer conn.Close()conn.Do("SELECT", dbNumber)  //this is the call I want to avoid每次使用 redis 时都必须选择数据库似乎是多余的,并且也带来了一个问题,因为我将它用于会话,即具有不是我的代码与我的池中的 redis 连接一起工作使得它“不可能”设置正确的数据库它。我想要做的是为池设置 dbno,以便每当有人从池中请求新连接时,它都会附带已设置的正确 db,即每次都不明确设置它。你是如何在你的应用程序中解决这个问题的?
查看完整描述

3 回答

?
米脂

TA贡献1836条经验 获得超3个赞

您可以使用redis.DialOption:redis.DialDatabase,redis.DialPassword


conn, err := redis.Dial("tcp", "127.0.0.1:6379", redis.DialDatabase(1))

if err != nil {

    panic(err)

}

defer conn.Close()


查看完整回答
反对 回复 2021-08-16
  • 3 回答
  • 0 关注
  • 386 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信