Redis реагирует на различные значения $ при получении значения ключа - PullRequest
0 голосов
/ 01 октября 2018

В настоящее время я изучаю использование Redis и создаю для него клиентскую библиотеку.

Я провожу некоторые эксперименты, чтобы понять, как это работает, создав соединение telnet с сервером redis на порту 6379.

Когда я задаю ключ с помощью SET mykey myvalue, он возвращает + OK.Значит ли + что-нибудь, поскольку это нигде не задокументировано.

Когда я пытаюсь получить ключ, используя GET mykey, я получаю следующее

$7
myvalue

Из того, что я вижу в документации, поддерживается только возврат значения, поэтомупочему я получаю 7 долларов обратно.Имеет ли это какое-то конкретное значение, или я могу просто отказаться от него и просто посмотреть на следующую строку.

1 Ответ

0 голосов
/ 02 октября 2018

Это хорошо задокументировано в Спецификация протокола Redis .Я рекомендую вам внимательно прочитать его, прежде чем пытаться написать свой собственный клиент и / или только один из существующих клиентов Redis

+ обозначает простую строку - ref: https://redis.io/topics/protocol#resp-simple-strings

Простые строки кодируются следующим образом: символ плюс, за которым следует строка, которая не может содержать символ CR или LF (переводы строки не допускаются), завершается символом CRLF (т. Е. «\ R \»).n ").

Простые строки используются для передачи небинарных безопасных строк с минимальными издержками.Например, многие команды Redis в случае успеха отвечают просто «ОК», что простая строка RESP кодируется следующими 5 байтами:

"+OK\r\n"

$ обозначает объемную строку - ref: https://redis.io/topics/protocol#resp-bulk-strings

Массовые строки используются для представления одной двоичной безопасной строки длиной до 512 МБ.

Массовые строки кодируются следующим образом:

  • Байт "$", за которым следует число байтов, составляющих строку (длина с префиксом), оканчивающихся на CRLF.
  • Фактические строковые данные.
  • Окончательный вариантCRLF.

Таким образом, строка "foobar" кодируется следующим образом:

"$6\r\nfoobar\r\n"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...