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 | |