RESP 是 Redis 序列化協議的簡寫。它是一種直觀的文本協議,優勢在於實現異常簡單,解析性能極好。
Redis 協議將傳輸的結構數據分爲 5 種最小單元類型,單元結束時統一加上回車換行符
號\r\n。
1、單行字符串 以 + 符號開頭。
2、多行字符串 以 $ 符號開頭,後跟字符串長度。
3、整數值 以 : 符號開頭,後跟整數的字符串形式。
4、錯誤消息 以 - 符號開頭。
5、數組 以 * 號開頭,後跟數組的長度。
單行字符串 hello world
+hello world\r\n
多行字符串 hello world
$11\r\nhello world\r\n
多行字符串當然也可以表示單行字符串。
整數 1024
:1024\r\n
錯誤 參數類型錯誤
-WRONGTYPE Operation against a key holding the wrong kind of value
數組 [1,2,3]
*3\r\n:1\r\n:2\r\n:3\r\n
NULL 用多行字符串表示,不過長度要寫成-1。
$-1\r\n
空串 用多行字符串表示,長度填 0。
$0\r\n\r\n
注意這裏有兩個\r\n。爲什麼是兩個? 因爲兩個\r\n 之間,隔的是空串。