Jedis 最新版的代码太多了,阅读起来很吃力,从早期版本开始阅读的话会简单很多
怎么找老版本的代码?
打开 Jedis 的 Github主页,可以看到 commit 的记录个数
点击 commit 进去,拉到最低部,点击 older
按钮
可以看到浏览器的地址栏目变化
后面的数字就是 offset,目前的提交记录个数是 1535,那就试试 offset 为 1500。在浏览器中输入 https://github.com/xetorthio/jedis/commits/master?after=bf212393a11e449c064947124e0f244ccfc38bff+1500
这样就翻到了最后一页
点击这个就可以进入当时的提交版本
再点击 Browse files
就可以查看当时所有的代码文件了
在旁边还可以看到所有的 tag
点击就可以查看打上 tag 的代码了
第一个版本的代码
现在来分析一下签名为 829e6d9862df0b17931afefb961021fd5ee89db8
的代码
我本地已经下载好了一份代码
通信协议
要研究 Jedis 就需要一份 Redis 的通信协议:
本地也下载好了一份 PDF 版的文件
请求协议
协议的一般形式:
1 | *<参数数量> CR LF |
比如发送一条这样的命令:SET a b
,请求内容为
1 | *3 |
响应协议
一共有 5 种:
- status reply
- error reply
- integer reply
- bulk reply
- multi bulk reply
具体的格式看下图