Redis制定了RESP(REdis Serialization Protocol,Redis序列化協議)實現客戶端與服務端的正常交互,這種協議簡單高效,既能夠被機器解析,又容易被人類識別
發送命令格式
RESP的規定一條命令的格式如下,CRLF代表”\r\n”
*< 參數數量 > CRLF
$< 參數 1 的字節數量 > CRLF
< 參數 1> CRLF
...
$< 參數 N 的字節數量 > CRLF
< 參數 N> CRLF
以set hell world這條命令進行說明,參數數量爲3個,因此第一行爲:
*3
參數字節數分別是355,因此後面幾行爲:
$3
SET
$5
hello
$5
world
這樣傳輸的格式就是:
*3\r\n$3\r\nSET\r\n$5\r\nhello\r\n$5\r\nworld\r\n
返回結果格式
Redis的返回結果類型分爲以下五種:
- 狀態回覆:在RESP中第一個字節爲”+”
- 錯誤回覆:在RESP中第一個字節爲”-“
- 整數回覆:在RESP中第一個字節爲”:”
- 字符串回覆:在RESP中第一個字節爲”$”
- 多條字符串回覆:在RESP中第一個字節爲”*”