用最简单的linux命令学习测试redis请求协议

redis请求协议,支持两种类型:PROTO_REQ_INLINE(内联型)、PROTO_REQ_MULTIBULK(协议型)。redis服务器通信中,用的都是协议型请求类型,同时也支持内联型请求类型(没有严格的协议封装,支持简单的请求方式接入)。

1、协议型

请求格式:

*<参数数量> \r\n
$<参数 1 的字节数量> \r\n
<参数 1 的数据> \r\n
...
$<参数 N 的字节数量> \r\n
<参数 N 的数据> \r\n

当使用redis-cli客户端登录时,在终端执行的命令如set test 123,会根据协议格式转换成如下,并发送给服务器处理

*3\r\n
$3\r\n
SET\r\n
$4\r\n
test\r\n
$3\r\n
123\r\n
  • 当执行redis-cli -h 127.0.0.1 -p 6379 set testecho -en "get testkey\r\nget testkey2\r\n"|redis-cli -h 127.0.0.1 -p 6379redis-cli客户端会自动把消息内容转换成协议格式
  • 不通过redis-cli客户端,自行封装redis协议内容,如下(这里有个点,【$】字符前要有【\】,这点个人感觉很奇怪,当内容发送到redis服务器,接受时,【\】就消失了,有点转义的意思??)
    get test 命令echo -en "*2\r\n\$3\r\nget\r\n\$4\r\ntest\r\n"|nc localhost 6379
    get test 和 get test2命令echo -en "*2\r\n\$3\r\nget\r\n\$4\r\ntest\r\n*2\r\n\$3\r\nget\r\n\$5\r\ntest2\r\n"|nc localhost 6379
2、内联型

对于没有redis-cli客户端时,可以方便用内联型命令,内联型命令发送给服务器,即为当前字符串,如下:
get test 命令echo -en "auth 123\r\nget testkey\r\nget testkey2\r\n"|redis-cli -h 127.0.0.1 -p 6379(需要密码验证的,需要先执行auth)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值