go-redis 中 PoolTimeout、IdleTimeout 和 IdleCheckFrequency 之间的关系

tuk*_*tuk 4 go redis

有人可以让我知道go-redisPoolTimeoutIdleTimeoutIdleCheckFrequency之间的关系吗

疑问:-

  1. 如果我指定PoolTimeout20ms、IdleTimeout20ms、PoolSize100 和IdleCheckFrequency1 分钟。假设池中的所有连接都已使用,并且一个连接完成了其操作。那么新连接的请求是否会等到 IdleCheck 以 1 分钟的间隔运行?
  2. 如果我指定PoolSize100,即使没有对 Redis 执行任何活动的客户端操作,客户端也会保持与 Redis 的打开 100 个连接吗?

环境:-

  1. 去 - 1.7.4
  2. 雷迪斯 - 3.2.6
  3. Go-Redis - v5.2

tuk*_*tuk 5

这已经在 github 中得到了回答。只需发布以下相关部分:-

PoolSize 限制打开连接的最大数量。如果应用程序空闲,则 go-redis 不会打开任何连接。

当有命令要处理并且池中没有空闲连接时,将打开新连接。空闲连接在空闲时间达到 IdleTimeout 后将被关闭。

IdleCheckFrequency 指定我们检查连接是否过期的频率。如果应用程序空闲并且没有活动,则需要这样做。通常,当 go-redis 向池请求(健康)连接时,空闲连接会被关闭。