redis協議

背景

這篇文章是對redis章節的總結和學習筆記。java

數據結構

主要包含兩部分
1.數量/大小
參數的數量,有幾個參數的意思
2.參數
包含大小和數據。
大小就是該參數的字節大小,有幾個字節的意思。數據就是內容。redis

看到沒有,其實最外層的也是大小和數據,好比1的數量/大小,其實就是幾個參數的意思,這是大小;而後,數據就是參數。json


舉例子服務器

格式說明 數據結構


實際格式
是一個字符串,即按redis格式要求來的一個字符串。就跟咱們日常老說,json格式的字符串同樣。本質是字符串。格式的做用,只是用來給解析,而後獲得本身須要的哪幾個部分的哪幾個數據,這就是所謂的服務器和客戶端的通訊協議。 運維


響應爲何沒有+加號?
由於不少客戶端,好比java客戶端,在獲得服務器的響應數據的時候,已經解析了。也就是說,服務器返回的數據確定是標準格式的,有+號,是+OK。後面沒了,是由於客戶端解析了,去掉了沒用的信息,按本身須要的格式來顯示。學習

若是想要獲取服務器的原始返回數據,可使用telnet nc等。3d

協議是什麼,以及協議的做用

說白了,協議就是規定一個格式,好比服務器和客戶端須要通訊,其實就是互相發送字符串,可是怎麼才能互相看得懂呢?就是給字符串規定一個格式。雙方按這個格式來讀數據,而後再解析數據。這就是通訊的全部完整的流程。cdn

具體流程是:
用戶:輸入普通的通常的字符串——客戶端:解析爲服務器須要的格式,而後發送給服務器——服務器:接收遵照redis服務器客戶端通訊協議(即redis協議)的數據,而後解析,最後返回響應數據(也是按指定格式)——客戶端:接收數據,解析數據——用戶:最終看到的數據(極可能被客戶端篡改過)。blog

參考

redis運維

相關文章
相關標籤/搜索