基于 8.11.3 版本
options.PoolSize
可以指定连接池中最大的连接数,默认是runtime.GOMAXPROCS * 10
options.MinIdleConns
指定连接池中最少的空闲连接数options.MaxRetries
命令执行失败后的最大重试次数options.MinRetryBackoff
重试之间的最小等待时间options.MaxRetryBackoff
重试之间的最大等待时间options.DialTimeout
连接超时options.ReadTimeout
读超时options.WriteTimeout
写超时options.MinIdleConns
最小空闲连接数options.MaxConnAge
连接的存活时间options.IdleTimeout
空闲连接的存活时间
vendor/github.com/go-redis/redis/v8/command.go
- 每次执行 Redis 命令的时候,会创建一个 Cmd 对象,然后将这个对象传递给 Redis 客户端中的
cmdable
属性函数,由它来执行具体的操作 - 获取和释放连接在 withConn 函数中进行,连接池中的连接对象并未进行过初始化,执行了 initConn 函数的连接后,才真正和 redis 服务器建立了连接。
- cmdable 函数执行完成后,会释放连接会连接池中。具体逻辑在 releaseConn
options.MaxRetries
设定命令执行失败后的最大重试次数。- 重试之间等待的时间介于
options.MinRetryBackoff
和options.MaxRetryBackoff
- 重试之间的等待时间是指数增加的,具体逻辑在 RetryBackoff 函数中,它用来获取重试之间的等待时间