Redis 數據傳輸協議

相關的環境變量自己添加

Redis版本:Redis version 3.0.503

其它工具: telnet

Redis 協議,理解這個可以寫其它相應的客戶端或者做數據同步

基於TCP協議來做數據交換,默認端口: 6379

傳遞的數據都以crlf[\r\n]結尾

請求命令到服務器的命令協議

格式以二進程安全的形式傳輸:

*\r\n

$\r\n

\r\n

……

$\r\n

\r\n

這個格式,可以在啟用了AOF配置的時候,在AOF文件裡面看到

回覆客戶端的協議

格式:回覆類型 參數數量 CRLF

回覆類型:

"+" : 狀態回覆 [+PONG \r\n] # 執行 ping 命令返回的結果
"-" : 錯誤回覆 [-ERR ... \r\n] # 出錯,在-之後的最近一個空格,表示錯誤類型
":" : 整數回覆 [:1 \r\n] # 整數,如執行 incr k1
:
"$" : 批量回復 [$3...\r\n] # String類型的數據返回,可能返回$0 ; $6\r\nfoobar\r\n ;
1. 第一字節為 "$" 符號
2. 接下來跟著的是表示實際回覆長度的數字值
3. 之後跟著一個 CRLF
4. 再後面跟著的是實際回覆數據
5. 最末尾是另一個 CRLF
"*" : 多條批量回復 [*2\r\n$5\r\nvalue\r\n$3\r\nken\r\n]
參考下批量回復,有相同的地方
*\r\n$\r\n值1\r\n....$\r\n值N\r\n
如果有空元素的話,則值長度為 $-1
# 一般返回一個結果集,可能 返回 *0 或者 *-1

嘗試看到效果可以用: telnet 訪問,會有最原始的協議數據返回,效果如圖:

Redis 數據傳輸協議

Tips: 如果是Windows 7 ,則telnet 默認是不安裝的,不過 xshell 默認自帶了


分享到:


相關文章: