手写一个简单的 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** 如果成功返回字符串:

你可能感兴趣的:(Redis,Java)