成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

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

cnsworder / 1613人閱讀

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

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

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

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

介紹

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

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

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

協(xié)議

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

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

請求協(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ù)都是二進制安全(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,相信你已經(jīng)有大致的概念了,Redis 的協(xié)議非常的簡潔易懂,這也是好上手的原因之一,你可以想想?yún)f(xié)議這么定義的好處在哪?

回復(fù)

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

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

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

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

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

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

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

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

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/28787.html

相關(guān)文章

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

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

    UnixAgain 評論0 收藏0

發(fā)表評論

0條評論

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