我正在阅读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应该发送语法错误)。