Redis通信協議

Redis用的是文本協議,簡單,易於理解,一目明瞭。

協議規範:

①協議將傳輸的結構數據分爲5種最小單元類型,單元結束時統一加上回車換行符號\r\n。

②單行字符串以+符號開頭:+hello\r\n

③多行字符串以$符號開頭,後跟字符串長度:$11\r\nhello world\r\n

④整數值以:符號開頭,後跟整數的字符串形式::1024\r\n

⑤錯誤消息以-符號開頭:-WRONGTYPE Operation against a key holding the wrong kind of value

⑥數組以*號開頭,後跟數組的長度:*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之間,隔的是空串。

客戶端向服務器發送的指令只有一種格式,多行字符串數組。比如一個簡單的set指令set author codehole會被序列化成下面的字符串:*3\r\n$3\r\nset\r\n$6\r\nauthor\r\n$8\r\ncodehole\r\n

服務器向客戶端回覆的響應也是基於上述5種進本類型組合的數據結構。

發佈了167 篇原創文章 · 獲贊 10 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章