摘要:用來了解一下通訊協(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
摘要:提供了集群支持,但也不能支持跨多個節(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...
閱讀 1081·2021-11-18 10:07
閱讀 2494·2021-10-14 09:42
閱讀 5509·2021-09-22 15:45
閱讀 673·2021-09-03 10:29
閱讀 3578·2021-08-31 14:28
閱讀 1985·2019-08-30 15:56
閱讀 3124·2019-08-30 15:54
閱讀 1103·2019-08-29 11:32