Redis协议笔记

redis协议相当简单好理解。

redis协议支持类型:

  • 正确 Simple Strings
  • 错误 Errors
  • 整数 Integers
  • 字符块 Bulk Strings
  • 数组 Arrays

Simple Strings(+)
Simple Strings的呈现以+开始,以\r\n结尾,一个只含有'OK'的表示为+OK\r\n。所以简单的字符串不能包含连续的\r\n字符。

Errors(-)
Errors 的呈现以-开始,以\r\n结尾,一条表示Error message错误信息的字符为-Error message\r\n

Integers(:)
Integers 的呈现以:开始,以\r\n结尾,比如:1000\r\n表示数字1000

Bulk Strings($)
Bulk Strings 数据头同时表示下一行数据长度,不包括换行符长度\r\n,$后面则是对应的长度的数据。它还有一个特殊用途,用长度为-1的空字符表示NUll值

Arrays(*)
Arrays 头以 * 开始,后边接一个Integer类型,表示消息体总共有多少行,不包括当前行,*后面是具体的行数,也就是数组长度,之后接着各自的数据类型。

发送方式

客户端将命令用块字符的方式发送给服务端,比如:

SET xyz abcde
*3\r\n
$3\r\n
SET\r\n
$3\r\n
xyz\r\n
$5\r\n
abcde\r\n

成功或者失败:

+OK\r\n
-错误信息\r\n

如果是内建的命令操作,可以直接发送命令给服务器。比如PING, EXISTS mykey等.使用telnet 127.0.0.1 6379连上默认的redis server, 敲入PING就可以返回结果+PONG

标签: none

已有 2 条评论

  1. jackwu jackwu

    请问下,Typecho 更多内容的,插件是什么?

    1. jackwu jackwu

      错了 是 “- 阅读剩余部分 -”

添加新评论