1. Redis 通信协议 RESP
简介
Redis 的通信协议是 Redis Serialization Protocol,翻译为 Redis 序列化协议,简称 RESP。它具有如下特征:
- 在 TCP 层
- 是二进制安全的
- 基于请求 - 响应模式
- 简单、易懂(人都可以看懂)
RESP 所描述的是 Redis 客户端 - 服务端的交互方式,掌握了其原理我们基本上就可以撸一个简单的 Redis 客户端
RESP 描述
Redis 协议将传输的结构数据分为 5 种类型,单元结束时统一加上回车换行符号 \r\n。
- 单行字符串,第一个字节为 +
- 错误消息,第一个字节为 -
- 整型数字,第一个字节为 :,后跟整数的字符串
- 多行字符串,第一个字节为 $,后跟字符串的长度
- 数组,第一个字节为 *,后跟跟着数组的长度
1
2
3
4
5
6
7
8
9
10
11
12
13
14// 单行字符串 cherry
+cherry
// 错误消息
-ERR unknown command 'sets'....
// 整形数字 29
:29
// 多行字符串 chenssy
$7 chenssy
// 数组 [chenssy,29]
*2 $7 chenssy $2 29
1 | // set userName chenssy |
从上面我们可以看出 RESP 协议是非常简单直观的一种协议,我们肉眼都可以看懂,而且数据结构类型也只有少少的 5 中,所以实现起来就变得很简单
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 我的生活小站!