Redis客户端通信协议

码字不易,转载请附原链,搬砖繁忙回复不及时见谅,技术交流请加QQ群:909211071

请求命令格式

  • 每行用\r\n分割
  • 第一行是参数数量
  • 第二行开始,每行以此是每个参数的字节数和参数字符串,各占一行

比如:set hello  redis

*3
$3
SET
$5
hello
$5
redis

上面为了方便看清,我们用换行展示,实际上发送的数据是一行:

*3\r\n$3\r\nSET\r\n$5\r\nhello\r\n$5redis\r\n

返回格式

  • 成功状态恢复:第一个字节为“+” (比如执行:seet hello redis)

  • 错误状态恢复:第一个字节为“-”  (比如执行:set hello redis)

  • 整数回复:第一个字节为“:” (比如执行:incr count)

  • 字符串回复:第一个字节为"$" (比如执行:get hello)

  • 多条字符串回复:第一个字节为"*"(比如执行:mget redis php)

下面看几个例子,我们在cli里是看不到协议格式的,可以用nc去模拟交互

$nc -nvv 127.0.0.1 6379
found 0 associations
found 1 connections:
     1: flags=82<CONNECTED,PREFERRED>
        outif lo0
        src 127.0.0.1 port 52123
        dst 127.0.0.1 port 6379
        rank info not available
        TCP aux info available

Connection to 127.0.0.1 port 6379 [tcp/*] succeeded!
seet hello redis
-ERR unknown command `seet`, with args beginning with: `hello`, `redis`, 
set hello redis
+OK
get hello
$5
redis
incr count
:3
mset redis redis php php
+OK


mget redis php
*2
$5
redis
$3
php

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AirGo.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值