众所周知,redis使用的是resp协议,那么客户端发送给redis-server的数据又是什么样子的呢,以SET C c命令为例:
# SET C c命令
# resp格式
*3\r\n$3\r\nSET\r\n$1\r\nC\r\n$1\r\nc\r\n
# resp格式排版一下:
*3\r\n
$3\r\nSET\r\n
$1\r\nC\r\n
$1\r\nc
\r\n
从上可知:
- redis-cli发送的是一个二进制安全的数组
另外,resp例子如下:
# 简单字符串
+OK\r\n
# 错误响应,错误信息不能包括\r\n
-ERR unknow command `foo`\r\n
# 整形
:5\r\n
# 安全二进制安全的字符串(bulk strings)
$6\r\nfoobar\r\n
# 空字符串,java中的""
$0\r\n\r\n
# 不存在的值,NULL
$-1\r\n
# 空数组
*0\r\n
# 两个bulk Strings元素 (换行是增强可读性)
*2\r\n
$3\r\nfoo\r\n
$3\r\nbar
\r\n
# 类型不同的数组(换行是增强可读性)
*2\r\n
:1\r\n
+hello
\r\n
本文介绍了 Redis 使用的 RESP 协议,展示了客户端如何通过 RESP 协议与 Redis 服务器进行交互。通过 SETCc 命令的具体示例,解释了 RESP 的数据格式和结构,包括简单的字符串、错误响应、整型、二进制安全字符串等。


被折叠的 条评论
为什么被折叠?



