redigo源码分析
主要关注点在于 连接池pool
和 连接实例
的管理。
我们首先分析 连接池管理
连接池的主要动作包括
- 初始化连接池 init
- 获取一次连接 get
- 释放连接 put
我们可以看下连接池对象的具体参数
1 |
|
获取连接具体操作
1 |
|
释放返回连接
1 |
|
这里比较核心的点是, 管理闲置连接,是通过双联表来操作的, 具体定义如下
1 |
|
对连接的管理,定如下
1 |
|
其他即是按照redis协议进行通信即可
redis协议参考:
- http://redisdoc.com/topic/protocol.html
- https://juejin.im/post/5b69cf08f265da0f6a037dea
- https://xargin.com/redis-protocal/
其他
使用go-callvis
展示的redigo 可视化调用关系
使用 jquery.graphviz.svg
可以实现调用图的动态交互
简单实用原生协议实现一个set
get
方法, 加深下协议理解
1 |
|