2 回答
TA贡献1811条经验 获得超4个赞
我不知道您使用的是哪个驱动程序,但是使用redigo,您可以在池中定义多个打开的连接,然后您要做的就是在对 redis 的每个查询中,首先从池中获取一个客户端,然后关闭它,所以它返回到池中并重新使用,就像这样:
redisPool = &redis.Pool{
MaxIdle: 3,
MaxActive: 10, // max number of connections
Dial: func() (redis.Conn, error) {
c, err := redis.Dial("tcp", ":6379")
if err != nil {
panic(err.Error())
}
return c, err
},
}
r := redisPool.Get() // get a client from the pool
_, err = r.Do("GET one") // use the client
if err != nil {
panic(err.Error())
}
r.Close() // close the client so the connection gets reused
TA贡献1998条经验 获得超6个赞
您的问题是 Redis 无法打开新连接,然后变得无响应,您需要增加操作系统的文件描述符限制(ubuntu 默认为 1024,这可能是一个问题),它现在主导着 redis maxclients 设置。
您调整此限制的方式取决于正在运行的 os redis,在 linux 上您需要这样的东西:
ulimit -n 99999
- 2 回答
- 0 关注
- 261 浏览
添加回答
举报