成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

用 Go 來了解一下 Redis 通訊協(xié)議

cnsworder / 1567人閱讀

摘要:用來了解一下通訊協(xié)議原文地址用來了解一下通訊協(xié)議都有那么多包來支撐你使用,那你是否有想過有了服務端,有了客戶端,他們倆是怎樣通訊,又是基于什么通訊協(xié)議做出交互的呢介紹基于我們的目的,本文主要講解和實踐的通訊協(xié)議的客戶端和服務端是通過連接來進

用 Go 來了解一下 Redis 通訊協(xié)議
原文地址:用 Go 來了解一下 Redis 通訊協(xié)議

Go、PHP、Java... 都有那么多包來支撐你使用 Redis,那你是否有想過

有了服務端,有了客戶端,他們倆是怎樣通訊,又是基于什么通訊協(xié)議做出交互的呢?

介紹

基于我們的目的,本文主要講解和實踐 Redis 的通訊協(xié)議

Redis 的客戶端和服務端是通過 TCP 連接來進行數據交互, 服務器默認的端口號為 6379

客戶端和服務器發(fā)送的命令或數據一律以 (CRLF)結尾(這是一條約定)

協(xié)議

在 Redis 中分為請求回復,而請求協(xié)議又分為新版和舊版,新版統(tǒng)一請求協(xié)議在 Redis 1.2 版本中引入,最終在 Redis 2.0 版本成為 Redis 服務器通信的標準方式

本文是基于新版協(xié)議來實現(xiàn)功能,不建議使用舊版(1.2 挺老舊了)。如下是新協(xié)議的各種范例:

請求協(xié)議

1、 格式示例

*<參數數量> CR LF
$<參數 1 的字節(jié)數量> CR LF
<參數 1 的數據> CR LF
...
$<參數 N 的字節(jié)數量> CR LF
<參數 N 的數據> CR LF

在該協(xié)議下所有發(fā)送至 Redis 服務器的參數都是二進制安全(binary safe)的

2、打印示例

*3
$3
SET
$5
mykey
$7
myvalue

3、實際協(xié)議值

"*3
$3
SET
$5
mykey
$7
myvalue
"

這就是 Redis 的請求協(xié)議規(guī)范,按照范例1編寫客戶端邏輯,最終發(fā)送的是范例3,相信你已經有大致的概念了,Redis 的協(xié)議非常的簡潔易懂,這也是好上手的原因之一,你可以想想協(xié)議這么定義的好處在哪?

回復

Redis 會根據你請求協(xié)議的不同(執(zhí)行的命令結果也不同),返回多種不同類型的回復。在這個回復“協(xié)議”中,可以通過檢查第一個字節(jié),確定這個回復是什么類型,如下:

狀態(tài)回復(status reply)的第一個字節(jié)是 "+"

錯誤回復(error reply)的第一個字節(jié)是 "-"

整數回復(integer reply)的第一個字節(jié)是 ":"

批量回復(bulk reply)的第一個字節(jié)是 "$"

多條批量回復(multi bulk reply)的第一個字節(jié)是 "*"

有了回復的頭部標識,結尾的 CRLF,你可以大致猜想出回復“協(xié)議”是怎么樣的,但是實踐才能得出真理,斎知道怕是你很快就忘記了

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/28787.html

相關文章

  • 使 TiKV 構建分布式類 Redis 服務

    摘要:提供了集群支持,但也不能支持跨多個節(jié)點的分布式事務。是一個高性能,支持分布式事務的數據庫。譬如,我們就構建了,一個基于的,兼容的分布式關系型數據庫。它使用作為每行的分隔符并且用不同的前綴來代表不同的類型。 什么是 Redis Redis 是一個開源的,高性能的,支持多種數據結構的內存數據庫,已經被廣泛用于數據庫,緩存,消息隊列等領域。它有著豐富的數據結構支持,譬如 String,Has...

    UnixAgain 評論0 收藏0

發(fā)表評論

0條評論

cnsworder

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<