手写一个简单的 Redis 客户端

RESP 协议

RESP 协议,全称 Redis 序列化协议(Redis Serialization Protocol) 是 Redis 客户端和服务器用来通信的文本协议,其特点是简单直观。优势在于实现简单,解析性能好。 ​

五种基本的Redis协议数据结构的最小单元类型:每个单元类型以【/r/n】结尾

  • 单行字符串
    • 以【+】开头,+OK\r\n表示字符串OK
  • 多行字符串
    • 以【$】开头,后面是字符串长度。
  • 数值
    • 以【:】开头,后面是整数字符串,:10086表示数值10086
  • 错误信息
    • 以【-】开头,后面是具体的错误信息,-EEROR XXXXX
  • 数组
    • 以【*】开头,后面跟数组长度,*3\r\n:1\r\n:2\r\n:3\r\n 表示数值数组[1,2,3]

注意:

  • NULL 使用多字符串进行表示,长度填-1:$-1\r\n
  • 空串使用多字符串表示,长度填0:$0\r\n\r\n,两个\r\n中间隔的是空串。

举几个例子: 命令1:**SET KEY VALUE** 将其转换为 RESP 协议中的文本为:*3\r\n$3\r\nset\r\n$3\r\nkey\r\n$5\r\nvalue\r\n

  • *3 表示后面是字符串数组,有三个字符串,其后面的 \r\n 表示该数据单元结束。
  • $3 表示长度为3的字符串

返回结果:+OK,表示设置 key-value 成功。 ​

命令2:**GET KEY VALUE** 如果成功返回字符串:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值