如何在redis中的内联命令中判断命令的结尾?

时间:2014-08-10 21:36:15

标签: redis

我正在阅读redis protocol,它说你可以通过在telnet会话中使用“以空格分隔的参数”来发送带有telnet的内联命令。我对此有一些疑问

1)如果命令以空格分隔,redis-server如何知道命令的结束位置?它会在\r\n结束吗?由于它的长度不是前缀,我想不出一个不同的方式。也许是EOF ...

2)如果它以\r\n或类似的东西结尾并且不是长度前缀,那是否意味着它不再是二进制安全的(当客户端发送内联命令时)?即如果客户端决定发送内联命令,它就不能再发送它想要的任意字符/字节了吗?

3)是否可以通过telnet发送任何redis命令(唯一的限制是它不再是二进制安全)或者仅限于PING?例如,一个集合将是:

SET key value\r\n

但不再允许SET key\r\n value\r\n(您可以发送它,但redis-server应该发送语法错误)。

0 个答案:

没有答案