亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

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

cnsworder / 1612人閱讀

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

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

Go、PHP、Java... 都有那么多包來(lái)支撐你使用 Redis,那你是否有想過(guò)

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

介紹

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

Redis 的客戶端和服務(wù)端是通過(guò) TCP 連接來(lái)進(jìn)行數(shù)據(jù)交互, 服務(wù)器默認(rèn)的端口號(hào)為 6379

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

協(xié)議

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

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

請(qǐng)求協(xié)議

1、 格式示例

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

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

2、打印示例

*3
$3
SET
$5
mykey
$7
myvalue

3、實(shí)際協(xié)議值

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

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

回復(fù)

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

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

錯(cuò)誤回復(fù)(error reply)的第一個(gè)字節(jié)是 "-"

整數(shù)回復(fù)(integer reply)的第一個(gè)字節(jié)是 ":"

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

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

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/28787.html

相關(guān)文章

  • 使 TiKV 構(gòu)建分布式類 Redis 服務(wù)

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

    UnixAgain 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<