redigo 源码
2020-08-30 15:54:54 0 举报
redigo源码分析
作者其他创作
大纲/内容
closed
返回 activeConn
struct Pool
closed(连接池关闭状态)
func (ac *activeConn) Err()(获取错误)
chInitialized(ch 初始化值)
redigo/pool
active>MaxActive
popBack()
N
count>MaxIdle
func (p *Pool) get()(从连接池中获取连接)
调用 get
是否成功
IdleTimeout>0
wait&MaxActive>0
Y
Close()
func Close()(关闭连接池,释放所有资源)
func Dial(用于创建和配置连接)
mu.Unlock()
关闭超时的连接
生成连接
TestOnBorrow(用于检测连接)
func (ac *activeConn) Close()(可用资源释放)
IdleTimeout(连接保持时长)
mu.Lock()
start
end
func (p *Pool) lazyInit()
返回errorConn
func NewPool()(创建连接池)
nowFunc()
MaxActive(给定时间内的最大连接数)
pc != nil
MaxIdle(最大连接数量)
mu(系统锁)
ch(限制可用连接数量)
.....
active(可用连接数量)
MaxConnLifetime(关闭连接时间)
从list中获取连接
func (ac *activeConn) Do()(执行命令)
pc = nil
func Stats()(获取连接池状态)
func Get()(获取连接,返回的是activeConn)
(p *Pool) put()
pushFront()
idle(连接链表)
Wait(是否等待)
收藏
收藏
0 条评论
下一页