Redis 数据传输协议

相关的环境变量自己添加

Redis版本:Redis version 3.0.503

其它工具: telnet

Redis 协议,理解这个可以写其它相应的客户端或者做数据同步

基于TCP协议来做数据交换,默认端口: 6379

传递的数据都以crlf[\r\n]结尾

请求命令到服务器的命令协议

格式以二进程安全的形式传输:

*\r\n

$\r\n

\r\n

……

$\r\n

\r\n

这个格式,可以在启用了AOF配置的时候,在AOF文件里面看到

回复客户端的协议

格式:回复类型 参数数量 CRLF

回复类型:

"+" : 状态回复 [+PONG \r\n] # 执行 ping 命令返回的结果
"-" : 错误回复 [-ERR ... \r\n] # 出错,在-之后的最近一个空格,表示错误类型
":" : 整数回复 [:1 \r\n] # 整数,如执行 incr k1
:
"$" : 批量回复 [$3...\r\n] # String类型的数据返回,可能返回$0 ; $6\r\nfoobar\r\n ;
1. 第一字节为 "$" 符号
2. 接下来跟着的是表示实际回复长度的数字值
3. 之后跟着一个 CRLF
4. 再后面跟着的是实际回复数据
5. 最末尾是另一个 CRLF
"*" : 多条批量回复 [*2\r\n$5\r\nvalue\r\n$3\r\nken\r\n]
参考下批量回复,有相同的地方
*\r\n$\r\n值1\r\n....$\r\n值N\r\n
如果有空元素的话,则值长度为 $-1
# 一般返回一个结果集,可能 返回 *0 或者 *-1

尝试看到效果可以用: telnet 访问,会有最原始的协议数据返回,效果如图:

Redis 数据传输协议

Tips: 如果是Windows 7 ,则telnet 默认是不安装的,不过 xshell 默认自带了


分享到:


相關文章: